Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 1 Software Engineering.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

Computer Science Department
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture # 2 : Process Models
Unit 2. Software Lifecycle
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
CEN nd Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Software Process Models.
CS487 Software Engineering Omar Aldawud
1 EE29B Feisal Mohammed Modeling the Process and Life Cycle Software development usually involves the following stages: Requirements analysis and definition.
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
CSE 470 : Software Engineering The Software Process.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
CH02: Modeling the process and life cycle Process of developing software (organization and discipline in the activities) contribute to the quality of the.
COMP 6710 Course NotesSlide 2-0 Auburn University Computer Science and Software Engineering Course Notes Set 2: Software Process Models Computer Science.
CS 501: Software Engineering
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Developed by Reneta Barneva, SUNY Fredonia The Process.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Chapter : Software Process
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
1 CMPT 275 Software Engineering Software life cycle.
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
Software Process and Models
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
CLEANROOM SOFTWARE ENGINEERING.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities 
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Software Prototyping Rapid software development to validate requirements.
Developed by Reneta Barneva, SUNY Fredonia The Process.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Model Process
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Slide 3.1 © The McGraw-Hill Companies, 2002 SOFTWARE LIFE-CYCLE MODELS.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Software Development Process includes: all major process activities all major process activities resources used, subject to set of constraints (such as.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Lecture 3 Prescriptive Process Models
Software Life Cycle “What happens in the ‘life’ of software”
Chapter 2 The Process.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
Chapter 2 The Process.
Software Processes Process should be
Rapid software development
Chapter 2 Software Processes
Presentation transcript:

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 1 Software Engineering 1A/1B/1C1M Week 1 Lecture 2 Software Process Models

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 2 The Meaning of Process When we build products or solve problems we tend to use a sequence of steps or activities. Often use same steps to solve similar problems. A process is a series of steps involving activities, constrains and resources that produce an intended output. A process has characteristics: –prescribes all the major activities –uses resources, subject to constraints, and produces intermediate and final products. –may be composed of subprocess that are linked in some way. May be defined as a hierarchy of processes, each with its own process model. –each activity has entry and exit criteria –activities organised in a sequence –have guiding principles that explain the goal of each activity. –constraints or controls may apply to activities, resources and products.

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 3 The Meaning of Process /2 When process is for building a product, often called a life-cycle. When building a software product, called a software life-cycle. Processes impose consistency and structure to a set of activities, and helps maintain consistent level of quality in outputs. A process is not simply a procedure or recipe for producing a product. A process usually provides alternative procedures for performing a task. A process structure allows us to examine, understand, control and improve the activities that comprise the process. Processes allow capture of past experience. Processes allow us to organise our knowledge about software development

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 4 Software Process Models Why should software developers use process models? –writing down a description of the development process provides a common understanding within the organisation of the activities, resources and constraints involved in software development. –Enables a development team to identify inconsistencies and omissions in how they are developing software. The starting point for process improvement. –A process model makes explicit the goals of development (such as building high quality software) and activities used can be evaluated for appropriateness against the goals. –Usual to tailor the development process for different projects. A process model helps in understanding where this tailoring can occur. Many process models have been developed. We will look at a few of the more popular software process models.

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 5 Waterfall Model One of the first process models REQUIREMENTS ANALYSIS SYSTEM DESIGN PROGRAM DESIGN CODING UNIT & INTE- GRATION TESTING SYSTEM TESTING ACCEPTANCE TESTING OPERATION & MAINTENANCE

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 6 Waterfall Model /2 Strict waterfall model requires each stage to be completed before the next begins. Was required for US DoD standard 2167-A Milestones and deliverables associated with each process activity. Advantages –Simple to implement and manage. –Well used. Disadvantages –Real projects are not sequential –Can not state requirements completely early –Customer does not see system until after testing –Development often results in parts of project being ‘blocked’. –Emphasis is on ease of project management. –Method does not scale up to large projects well.

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 7 Waterfall Model /3 Modified waterfall models do exit. One way to improve the model is to use prototyping to explore aspects of the problem before starting the model. REQUIREMENTS ANALYSIS SYSTEM DESIGN PROGRAM DESIGN CODINGUNIT & INTE- GRATION TESTING SYSTEM TESTING ACCEPTANCE TESTING OPERATION & MAINTENANCE PROTOTYPING Verify Validat e

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 8 Waterfall Model /4 Prototyping is also useful for validation: ensuring system has implemented all of the requirements, (or ensuring the developer is building the right product - according to specification), and verification: ensuring that each function works correctly (or checking the quality of the system) both verification and validation can occur during other parts of the process. Related to this is the German V model which explicity links: –unit testing and integration with verification of program design, –system testing with system design –acceptance testing with requirements analysis. See next slide

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 9 Waterfall Model /5 The V model REQUIREMENTS ANALYSIS SYSTEM DESIGN PROGRAM DESIGN CODING UNIT & INTE- GRATION TESTING SYSTEM TESTING ACCEPTANCE TESTING OPERATION & MAINTENANCE Verify design Validate requirements

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 10 Prototyping Model Prototyping can be used as the basis for a process model without the need to link it explicitly to the waterfall model. LIST OF REVISIONS LIST OF REVISIONS LIST OF REVISIONS PROTOTYPE REQUIREMENTS PROTOTYP E DESIGN PROTOTYP E SYSTEM TES T DELIVERED SYSTEM REQUIREMENTS (sometimes informal or incomplete) revise prototyp e user/ custome r review

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 11 Phased Development One problem of the waterfall model is that the software falls out at the end of the process (or sometimes, falls over at the end of the process) Phased development methods have working subsets of the proposed systems early in the development process. Each phase add additional functionality to the system. Allows early review and feedback of the system. Can do this by: –incremental development: partition system and design and implement parts one at a time. –iterative development: begin with limited functionality (but all major system componets present) and add or improve functionality with each iteration

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 12 Phased Development /2 Most projects using phased development will combine iterative and incremental development - each phase will likely include new and enhanced functionality. Advantages: –Useful system early in process, giving good feedback from customer. –Frequent releases allow early fixes for problems in previous releases. –Development team can usually focus on less than the whole system during a development phase - reduces complexity. –Final system will have had more testing than a system without early releases.

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 13 Spiral Model Developed by Boehm in ‘88. Combines development activities with risk management. Is iterative but with each ‘stage’ of developoment being an iteration of a cylce of planning, determining goals and alternatives, evaluation and risk analysis, and development and testing.

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 14 Additional Material #1 These are some additional notes base on material in last years text book. –Generic view of software engineering –The software Process –RAD Model –Concurrent Development model –Formal Methods Models

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page Generic View of Software Engineering Engineering is the analysis, design, construction, verification, and management of technical (and social) entities. An Engineering approach considers the following: What is the problem to be solved? What are the characteristics of the entity that are used to solve the problem? How will the entity (and solution) be realised? What approach will be used to uncover errors in the design and construction of the entity? How will the entity be maintained - corrections, adaptations and enhancements requested by users of the entity?

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page Generic View (Continued) Three generic ‘phases’ Definition phase - focus on ‘what’. –Systems engineering –Project planning –Requirements analysis Development phase - focus on ‘how’ –Software Design –Code generation –Testing Maintenance Phase - focus on change –Correction, Adaptation, Enhancement and Prevention

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page Generic View (continued) In addition, there are ‘umbrella activities’ which occur throughout the process. These include: Project tracking and control. Formal technical reviews Software quality assurance Software Configuration management. Document preparation and production Reusability management. Measurement. Risk management.

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page The Software Process Can characterise a software process using a Common Process Framework model: Common Process Framework Umbrella Activities Framework Activities Task Sets Tasks Milestones, deliverables SQA points

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page The RAD Model The Rapid Application Development (RAD) model is a ‘high-speed’ adaptation of the linear sequential model which uses a component based construction approach. Requirements must be well understood and project scope constrained. Attempts to create full functional systems in 2-3 months. Primary application domain is information systems. Phases –Business modeling what information drives the business process. What information is generated? Who generates it? Where does the information go? Who processes it?

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page RAD (continued) –Data Modeling Define a set of data objects needed to support the application, and the relationships between these objects. –Process Modeling Data objects and transformations defined to implement business functions. Provide Add, modify, delete, retrieve for all data objects. –Application Generation. Use 4GL techniques. Use components. –Testing and turnover Test new components and combination of components in the application. For larger application, can use RAD model if system can be decomposed and teams apply the RAD model to each component.

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page RAD (continued) Advantages –Rapid development. –high level of reuse. Disadvantages –Need commitment to process by both customer and developer. –Restricted application domain.

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page The Concurrent Development Model Also called ‘concurrent engineering’. Process represented by a network of activities. Each activity has a ‘state’. Each activity exists simultaneously with other activities. Events from activities can trigger changes of state in other activities. DoneBaselined Under Revision Awaiting Changes none Under Development Under Review

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page Formal Methods Model A formal methods are used to develop mathematical specifications of software. An example of a formal method model is cleanroom software engineering (developed by IBM). Formal methods can discover ambiguity, incompleteness, inconstancies and errors in a specification or design. Current problems: –Time consuming and expensive –Few software engineers have a background in formal methods –Not a good tool to communicate a specification or design to a technically unsophisticated customer. Important in safety critical applications. Will grow in more general usage.

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 24 Additional Material #2 This is material which is not from the text book or from Pressman. Software System Size Lehman’s Laws Moore’s Law Best Practice

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 25 Software System Size Some examples of system size: Small Telephone Exchange - 500,000 lines of code Space shuttle on-board system - 1,000,000 loc Large Telephone Exchange - 2,000,000 loc Telephone Network S/W - 3,000,000 loc If print code of a s/w system (ignore documentation!) 100,000 loc 400m of printout 1,000,000 loc 4km of printout

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 26 Lehman’s Laws Software systems always need to be maintained as they evolve. Observations (‘laws’) by Lehman: –Continual Change A program must change in a real-world environment or become less and less useful. –Increasing Complexity Changing a program will increase the complexity of the program (unless active efforts are made to avoid this) –Program Evolution Program evolution is self-regulating - can use metrics (such as size, # errors) to find statistically significant trends. –Conservation of Organisational Stability Over the lifetime of a system: The rate of development is approximately constant and independent of resources used to develop the system. –Conservation of Familiarity Over the lifetime of a system: the rate of change to the system is approximately constant.

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 27 Moore’s Law MIPS/$ and Memory/$ relationships double approximately every two years. Has been true for two decades and expected to continue for at least another 2 decades. Has enabled the size and complexity of systems being developed to continue to increase. This increase in size and complexity has forced development of new SE methods as old methods fail to scale up. The new area of rapid development is in distributed networked environments with many embedded applications.

Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 28 Best Practice What are some of concepts or methods which most Software Engineers would consider important in detailing what constitutes ‘best practice’ in Software Engineering? Abstraction and information hiding Decomposition and Composition Architecture and Modularity Process models Metrics Software Quality Configuration Management Project Management Analysis and design methods and notations. Prototyping Tool and Environments