Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering.

Similar presentations


Presentation on theme: "1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering."— Presentation transcript:

1 1 Software Engineering Muhammad Fahad Khan fahad@uettaxila.edu.pk Software Engineering Muhammad Fahad Khan fahad@uettaxila.edu.pk University Of Engineering & Technology Taxila,Pakistan

2 2 Course Schedule Management Ch 05 Project Management (Sommerville) Ch 05 Project Management (Sommerville) Ch 25 Managing People (Sommerville) Ch 25 Managing People (Sommerville) Ch 26 Quality Management (R S.P) Ch 26 Quality Management (R S.P)

3 3 Contd….. Development Ch 17 Rapid Software Development (Sommerville) Ch 17 Rapid Software Development (Sommerville) Ch 18 Software Reuse (Sommerville) Ch 18 Software Reuse (Sommerville) Ch 19 Component-based Software Engineering (Sommerville) Ch 19 Component-based Software Engineering (Sommerville) Ch 8 Data Flow Diagram (R S.P Ch 8 Data Flow Diagram (R S.P

4 4 Contd….. Testing Ch 21 Software Evolution Ch 21 Software Evolution Ch 28 Process Improvement (Sommerville) Ch 28 Process Improvement (Sommerville) Ch 22 Verification & Validation (Sommerville) Ch 22 Verification & Validation (Sommerville) Ch 13 & 14 Software Testing (R S.P) Ch 13 & 14 Software Testing (R S.P)Documentation Extra Topic Extra Topic SQA SQA Clean-room software engineering Clean-room software engineering Refoctoring Refoctoring Etc…….. Etc……..

5 5 Today’s Class Software Engineering Activities Software Engineering Activities Software Software the Product and its Quality the Product and its Quality The Process! The Process! What Is SE? What Is SE?

6 6 The Wall Street Journal “Ideas and technological discoveries are the deriving engines of economic growth” The Wall Street Journal “Ideas and technological discoveries are the deriving engines of economic growth” Software impact Software impact Impact of software maintenance Impact of software maintenance New Technologies to make it easier, faster, and less expensive to build high-quality programs New Technologies to make it easier, faster, and less expensive to build high-quality programs

7 7 What is Software? Software is a set of items or objects that form a “configuration” that includes programs documents data...

8 8 Software’s Dual Role Software is a product Software is a product Produces, manages, acquires, modifies, displays, or transmits information Produces, manages, acquires, modifies, displays, or transmits information Software is a vehicle for delivering a product Software is a vehicle for delivering a product Supports or directly provides system functionality Supports or directly provides system functionality Controls other programs (e.g., an operating system) Controls other programs (e.g., an operating system) Effects communications (e.g., networking software) Effects communications (e.g., networking software) Helps build other software (e.g., software tools) Helps build other software (e.g., software tools)

9 9 What Is Software? Is the Product that SW engineers Design and Build. Is the Product that SW engineers Design and Build. it encompasses: it encompasses: Instructions “Computer Programs” Instructions “Computer Programs” Documents “Describe Programs” Documents “Describe Programs” Architecture including Data Structures “Enable Programs” Architecture including Data Structures “Enable Programs” Logical rather than physical Logical rather than physical

10 10 Software vs. Hardware software is engineered not manufactured software doesn’t wear out software is complex Software is custom build

11 11 Failure Rate & Its Reason Compare to the bath-tub curve Fig 1.1

12 12 Software Applications System software (compilers, file management, etc) System software (compilers, file management, etc) Application software Application software Engineering/scientific software Engineering/scientific software Embedded software Embedded software Product-line software Product-line software Web-Apps Web-Apps AI AI

13 13 Software Applications wireless networks the Web as a computing engine Open source —”free” source code open to the computing community (a blessing, but also a potential curse!) Other examples Data mining Grid computing Cognitive machines Software for nanotechnologies

14 14 Legacy Software software must be adapted to meet the needs of new computing environments or technology. software must be enhanced to implement new business requirements. software must be extended to make it interoperable with other more modern systems or databases. software must be re-architected to make it viable within a network environment. Why must it change?

15 15 Software Engineering IEEE definition. 1.Application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; That is, the application of engineering to software. 2.The study of approaches as in (1).

16 16 SE Activities nt gathering estimating scheduling tracking delivery support feedback Each phase has three components: 1.Set of activities - This is what you do 2.Set of deliverables - This is what you produce. 3. Quality Control Measures - This is what you use to evaluate the deliverables.

17 17 What Are Good Programs? What makes a text editor a bad application? What makes a text editor a bad application? What makes a C++ compiler a bad compiler? What makes a C++ compiler a bad compiler? What makes a hospital patient database application bad? What makes a hospital patient database application bad?

18 18 Quality Software, What Makes It Good? 1. It works Program must do the task correctly and completely THUS … the first step in the development process is to understand exactly and completely WHAT the program is required to do? Document the outcome  SW requirements Develop programs that meets customer requirements using SW specifications Format of Input and output Processing details Performance Error handling procedures Standards And so on …

19 19 Quality Software, What Makes It Good? 2. Can be read and understood 2. Can be read and understood Document the code Document the code 3. Can be modified 3. Can be modified To accommodate for new requirements To accommodate for new requirements 4. Completed in time and within budget 4. Completed in time and within budget

20 20 Quality and the Process How can we make sure (measure) that our software is “good”? How can we make sure (measure) that our software is “good”? Measure the quality of the software by measuring the process Measure the quality of the software by measuring the process We must have a roadmap or process.. A software process We must have a roadmap or process.. A software process

21 21 What is SW Process? When building a Product it’s important to go through a series of predictable steps, road map, that help you create a timely, and high-quality result. The ROAD MAP that you follow is the SW process. Process depends on the SW you are building Web design vs. telephone switch!!

22 22 Software Process Process defines who is doing: – What?, – When and how? – To reach a goal Process defines tasks and activities within a schedule Results – Programs – Documents – And data Software process is a roadmap for high quality software

23 23 Process: A Generic View

24 24 A Layered Technology Software Engineering a “quality” focus process model Methods “how to’s” tools Communication Requirements Design Code Testing Deployment support

25 25 Umbrella Activities A Process Framework Process framework Framework activities SW Eng Actions #1 work tasks work products milestones & deliverables QA checkpoints Design

26 26 Framework Activities Communication Planning Modeling Analysis of requirements Design Construction Code generation Testing Deployment

27 27 Umbrella Activities Software project management Formal technical reviews Software quality assurance Software configuration management Work product preparation and production Reusability management Measurement Risk management

28 28 Generic Framework activities Communication Get to know your Customer and their processes Identify stakeholders Requirement elicitation

29 29 Generic Framework activities Planning Plan the work Identify resources Identify tasks Set the schedule

30 30 Generic Framework activities Modeling Analysis of requirements Design Prototype for customer and developers communications

31 31 Generic Framework activities Construction Code generation Testing

32 32 Generic Framework activities Deployment Customer evaluation and feedback

33 33 CMM There must be a commitment to QA. SEI developed a process model to measure Quality “IEEE Capability Maturity Model (CMM)”, CMM is a: “A way to measure the current process maturity of an organization” Maturity is a measure of the goodness of the process itself An organization with a more mature process is more likely to develop high quality SW, in a timely, predictable and cost effective way. An organization's process will improve slowly and become more mature

34 34 The CMMI The CMMI defines each process area in terms of “specific goals” and the “specific practices” required to achieve these goals. Specific goals establish the characteristics that must exist if the activities implied by a process area are to be effective. Specific practices refine a goal into a set of process- related activities.

35 35 The CMMI Process “standards” do exist CMMI is an important one CMMI levels provide an indication of an organizations process capability Level 0 incomplete Level 1 performed Level 2 managed Level 3 defined Level 4 quantitatively managed Level 5 optimized

36 36 Process Patterns Process patterns define a set of activities, actions, work tasks, work products and/or related behaviors Process patterns define a set of activities, actions, work tasks, work products and/or related behaviors A template is used to define a pattern A template is used to define a pattern Typical examples: Typical examples: Customer communication (a process activity) Customer communication (a process activity) Analysis (an action) Analysis (an action) Requirements gathering (a process task) Requirements gathering (a process task) Reviewing a work product (a process task) Reviewing a work product (a process task) Design model (a work product) Design model (a work product)

37 37 Process Assessment The process should be assessed to ensure that it meets a set of basic process criteria that have been shown to be essential for a successful software engineering The process should be assessed to ensure that it meets a set of basic process criteria that have been shown to be essential for a successful software engineering. Many different assessment options are available: Many different assessment options are available: SCAMPI SCAMPI CBA IPI CBA IPI SPICE SPICE ISO 9001:2000 ISO 9001:2000

38 38 Assessment and Improvement

39 39 Generic View of SE SW Engineering is the: SW Engineering is the: Analysis Analysis Design Design Construction Construction Verification Verification Management of Software. Management of Software.

40 40 SW Process Models Guides the SW team thought a set of framework activities (process flow) Linear Incremental evolutionary It is a set of activities required to Define, design, implement, test and maintain a software product. A SW process model is chosen based on the nature of the project. Each process model prescribes a workflow for SE activities

41 41 SW Process Models All models have phases and each phase has 3 components: Set of activities, this is what you do. Set of deliverables, this is what you produce. Quality control measures, this is what you use to evaluate the deliverables. The activities defines the process Framework, the generic set encompasses: Communication, planning, modeling, construction, and deployment

42 42 Question & Review session For any query feel free to contact fahad@uettaxila.edu.pk fahad@uettaxila.edu.pk


Download ppt "1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering."

Similar presentations


Ads by Google