Skip to main content

Software Engineering(Based on Ian Sommerville’s Software Engineering 8th Ed.)



•An Introduction to Software Engineering
Objectives

•Understand what Software Engineering is, and why it is important

•Answer fundamental questions about Software Engineering

•Introduce ethical and professional responsibility issues as they relate to computer scientists and software engineers

•Questions about Software Engineering

•What is software?

–Software includes source code, executable, and associated documentation such as requirements documents, design models, and user manuals

–May be targeted for some general purpose (web browser, word processor, etc), or for a specific custom need

–New software can be produced from scratch, by configuring generic software systems, or by reusing existing software

•Questions about Software Engineering

•What is Software Engineering?


–Software engineering is an engineering discipline that applies theories, methods, and tools to solve problems related to software production and maintenance

–Software engineers strive to deliver high-quality software, on time and within budget

•Questions about Software Engineering

•Why is Software Engineering Important?

–Financial, security, and safety critical systems rely on software

–Software mediates every aspect of our Internet experience

–The economies of all developed nations are dependent on software

–There is an increasing need to cost effectively develop high-quality software

•Questions about Software Engineering


•What is the difference between Software Engineering and Computer Science?


–Software engineering is concerned with producing usable software for today; computer science is concerned with finding fundamental truths about theoretical problems for posterity

–Software engineering projects have fixed budgets and schedules; computer science projects have open-ended budgets and schedules

–Software created by software engineers must evolve as user’s needs change; solutions created by Computer Scientists never change

–Software engineers require domain knowledge to function; computer scientists rely on mathematical principles to function

–Unlike physics and electrical engineering, software engineers often rely on methods and principles borrowed from other engineering disciplines instead of computer science

•Questions about Software Engineering


•What is the difference between Software Engineering and System Engineering?

–System Engineering is concerned with all aspects of computer based systems, including hardware, software and process engineering; applies tested and known principles; the discipline is thousands of years old

–Software Engineering is concerned with developing the software infrastructure, control, applications, and databases in the system; often apply new and untested elements in software projects; the discipline is about 50 years old

•Questions about Software Engineering

•What is a Software Process?


–A software process is a set of activities and their output, which result in a software product

–Four fundamental process activities are:
•Specification: Defines what the software should do, and its operational constraints

•Design and implementation: Designs the solutions, and produces the source code to meet the specification

•Validation: Checks that the software produced is what the customer wants

•Evolution: Changes made to the software that meet user’s changing needs

•Questions about Software Engineering

•What is a Software Process model?


–An abstract representation of a software process, presented from a particular perspective; for example, workflow (sequence of activities), data-flow (information flow), or role/action (who does what)

–These process models explain different approaches to software development; for example, Waterfall, Iterative, and Component Based Software Engineering

•Software Engineering: A Problem Solving Activity

•Analysis: Understand the nature of the problem and break the  problem into pieces

•Synthesis: Put the pieces together into a large structure



For problem solving we use 

•Techniques (methods):

–Formal procedures for producing results using some  well-defined notation

•Methodologies:

–Collection of techniques applied across software development  and unified by a philosophical approach

•Tools:

–Instrument or automated systems to accomplish a technique

•Software Engineering: Definition

Software Engineering is a collection of techniques,

methodologies and tools that help with the production of



•a high quality software  system

•with a  given budget

•before a given deadline



   while change occurs.

•Scientist vs Engineer

•Computer Scientist

– Proves theorems about algorithms, designs languages, defines knowledge representation schemes

–Has infinite time…

•Engineer


–Develops a solution for an application-specific problem for a client

–Uses computers & languages, tools, techniques and methods

–Has finite (usually enough) time…

•Software Engineer

–Works in multiple application domains

–Has only 3 months...

–…while changes occurs in requirements and available technology

Comments

Popular posts from this blog

Free Download Microsoft Macro Assembler (MASM 6.11)

Author :   Microsoft Email   :    None Website:    http://www.microsoft.com/ Released:    Sep 28 1993 Platform:    DOS Windows Source:      No Binaries:      Yes Summary       MASM 6.11 was the last stand-alone version of MASM available from Microsoft. Newer versions can be found "hidden" within other Microsoft products if you look hard enough. The download below includes the original install disks for MASM 6.11, along with patches to upgrade to 6.11d (last version that runs on DOS/Win16) and 6.14 (includes support for the Intel Pentium Pro processor, the Intel MMX architecture, AMD 3D Technology, and Intel Internet Streaming SIMD Extensions). Also included are the user's manuals in both Word and PDF format. Note: MASM is no longer sold by Microsoft, and the MASM executable and linker can be found in other tools available for free directly from Micros...

Technology Is Changing

Technology Is Changing!

10 Best Operating Systems For Laptops And Computers In 2021

10 Best Operating Systems For Laptops And Computers In 2021 Today’s modern age is blessed with the miracle of technology. One of these miracles that have made our lives simpler, faster and more entertaining is the computers. Computers are a revolutionary invention that really changed the course of human civilization. It has evolved from bulky desktop boxes to more portable and convenient laptops and mobile phones. However, the fact which many seldom talk about is what makes these computers work the way they do. We are of course talking about the operating system aka OS. Without an operating system, a computer cannot simply function. What Is The Difference Between Server OS And Everyday OS? Understanding how to differentiate a server OS from an everyday one is vital to our discussion. The differences are very specific. An everyday OS will be able to run programs like MS Word, PowerPoint, Excel, etc. including running one of your favorite video games. It enables applications that make br...