Chapter 2 Software Processes

Size: px
Start display at page:

Download "Chapter 2 Software Processes"

Transcription

1 Chapter 2 Software Processes Chapter 2 Software Processes Slide 1

2 Topics covered Software processes and process models Generic models: Waterfall Incremental development Reuse-oriented software engineering Basic process activities: Specification Development Validation Evolution (cont'd) Chapter 2 Software Processes Slide 2

3 Topics covered (cont d) Coping with change Software prototyping: Uses of prototypes Classifying prototypes User Interface prototyping (Mills ) Incremental Delivery (cf. Incremental development) Boehm s spiral model The Rational Unified Process (an example of a modern software development method) Chapter 2 Software Processes Slide 3

4 Software processes and process models Chapter 2 Software Processes Slide 4

5 The software process [struhk-cherd] adjective; having a clearly defined structure or organization. A process is a structured set of activities required to develop a software system. Many different software processes, but all involve: Specification defining what the system should do; Design & implementation; Validation checking that it does what the customer wants (and Verification checking that it does what is specified); Evolution changing the system in response to changing customer needs. A process MODEL is an abstract representation of a process. It presents a description of a process from some particular perspective Models should be as simple as possible, but no simpler. A. Einstein Chapter 2 Software Processes Slide 5

6 The software process [struhk-cherd] adjective; having a clearly defined structure or organization. A process is a structured set of activities required to develop a software system. Many different software processes, but all involve: Specification defining what the system should do; Design & implementation; Validation checking that it does what the customer wants (and Verification checking that it does what is specified); Evolution changing the system in response to changing customer needs. A process MODEL is an abstract representation of a process. It presents a description of a process from some particular perspective Models should be as simple as possible, but no simpler. A. Einstein Chapter 2 Software Processes Slide 6

7 Plan-driven and agile processes Plan-driven processes: all of the process activities are planned in advance and progress is measured against this plan. Agile processes: planning is incremental and it is easier to change the process to reflect changing customer requirements. In practice, most practical processes include elements of both plan-driven and agile approaches. There are no right or wrong software processes! Chapter 2 Software Processes Slide 7

8 Generic models Chapter 2 Software Processes Slide 8

9 Generic software process models The Waterfall Model plan-driven model; separate and distinct phases of specification and development. not iterative Incremental Development specification, development, & validation are interleaved; may be plan-driven or agile. Reuse-Based Development e.g., componentbased SE : the system is assembled from existing components; may be plan-driven or agile In practice, most large systems are developed using a process that incorporates elements from all of these models. (And, at no additional cost: Boehm s Spiral Model.) Chapter 2 Software Processes Slide 9

10 Waterfall model (W. Royce) Requirements definition System and software design Implementation and unit testing Integr ation and system testing Operation and maintenance Chapter 2 Software Processes Slide 10

11 Waterfall model (cont d) There are separate phases in the waterfall model: Requirements analysis and definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance Model is mostly used for large systems engineering projects where a system is developed at several sites. In such circumstances, its plan-driven nature helps in coordinating the work. Chapter 2 Software Processes Slide 11

12 Waterfall model problems Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements. Thus, more appropriate when requirements are wellunderstood to begin with. This applies to relatively few systems In general, the drawback of the waterfall model is the difficulty of accommodating change after the process is underway. Chapter 2 Software Processes Slide 12

13 Incremental development Concurr ent activities Specification Initial version Outline description Development Intermediate versions Validation Final version Chapter 2 Software Processes Slide 13

14 Incremental development benefits Reduces cost of accommodating changing customer requirements - amount of analysis and documentation that has to be re-done is much less than is required with the waterfall model. Easier to get customer feedback - customers can comment on demonstrations of the software and see how much has been implemented. More rapid delivery & deployment of useful software to the customer is possible - customers may be able to use and gain value from the software earlier than is possible with a waterfall process. Chapter 2 Software Processes Slide 14

15 Incremental development problems Lack of process visibility - lack of document deliverables to measure progress. If systems are developed quickly, it is not cost-effective to produce documents that reflect every version of the system. System structure tends to degrade as new increments are added - unless time and money is spent on refactoring to improve the software, regular change tends to corrupt its structure. Incorporating further software changes becomes increasingly difficult and costly. Chapter 2 Software Processes Slide 15

16 Reuse-oriented software engineering Based on systematic (as opposed to serendipitous) reuse - systems are integrated from existing components or COTS (Commercial-Off-The-Shelf) systems. Process stages Component analysis (Assessing what s available.) Requirements modification (Why is this needed?) System design with reuse Development and integration Reuse is now the standard approach for building many types of business systems. (cont'd) Chapter 2 Software Processes Slide 16

17 Reuse-oriented software engineering (what s available?) Requirements specification Component analysis Requirements modification System design with reuse Development and integration System validation (cont'd) Chapter 2 Software Processes Slide 17

18 Types of reusable software components Web services that are developed according to service standards and which are available for remote invocation. Collections of objects that are developed as a package to be integrated within a component framework such as.net or J2EE (Java EE 6). Stand-alone software systems (COTS) that are configured for use in a particular environment. Chapter 2 Software Processes Slide 18

19 Basic process activities Chapter 2 Software Processes Slide 19

20 Process activities Actual software processes are interleaved or sequences of technical, collaborative and managerial activities with the overall goal of specifying, designing, implementing and testing a software system. The four basic process activities of specification, development, validation (& verification), and evolution are organized differently in different development processes. In the waterfall model, they are organized in sequence; in incremental development they are interleaved. Chapter 2 Software Processes Slide 20

21 Software specification / RE The process of establishing what services are required and the constraints on the system s operation and development. Requirements Engineering (RE) process: Feasibility (technical and otherwise) study Requirements elicitation and analysis Requirements specification (documentation) Requirements validation (cont'd) Chapter 2 Software Processes Slide 21

22 The requirements engineering process (waterfall perspective) Feasibility study Feasibility report Requirements elicitation and analysis System models Requir ements specification User and system requirements Requirements validation Requirements document Chapter 2 Software Processes Slide 22

23 Software design and implementation The process of producing an executable system based on the specification (waterfall perspective) Software design design a software structure that realizes the specification. Implementation translate this structure into an executable program. Note: the activities of specification, design, and implementation are closely related and may be interleaved (as with incremental development). Chapter 2 Software Processes Slide 23

24 Design activities Architectural design: identify overall structure of system, principal components (sometimes called sub-systems or modules), their relationships, and how they are distributed. Interface design: define the interfaces between system components. Component design: design how each system component will operate. Database (data structure) design: design the system data structures and how these are to be represented in a database. Chapter 2 Software Processes Slide 24

25 Software verification & validation Verification and validation (V&V) determines whether or not a system (1) conforms to its specification and (2) meets the requirements of the customer. Involves checking processes (e.g., inspections/reviews, formal verification) and program (machine-based) testing. Testing is the most commonly used V&V activity and involves executing program elements with test cases that are derived from analyzing specifications and/or program logic. Chapter 2 Software Processes Slide 25

26 Testing stages Development or component testing Individual components are tested independently; Components may be functions or objects or coherent groupings of these entities. System testing Testing of the system as a whole. Testing of emergent properties is particularly important. Acceptance testing Testing with customer data to check that the system meets the customer s needs/desires. Chapter 2 Software Processes Slide 26

27 Software evolution ( maintenance ) Software is inherently flexible and subject to change. As requirements change through changing business/environmental circumstances, the software must also evolve and change. The distinction between development and evolution has become increasingly irrelevant as fewer and fewer systems are completely new. (cont'd) Chapter 2 Software Processes Slide 27

28 Software evolution ( maintenance ) Define system requirements Assess existing systems Propose system changes Modify systems e.g., change requests Existing systems New system Chapter 2 Software Processes Slide 28

29 Coping with change Chapter 2 Software Processes Slide 29

30 Inevitability of change Change is inevitable in all large software projects. Business/environmental changes lead to new and changed system requirements. New technologies open up new possibilities for improving implementations. Changing platforms require application changes. Change costs include both re-work (redoing already completed work -- e.g., re-analyzing requirements) and the cost of implementing new functionality. Chapter 2 Software Processes Slide 30

31 Reducing the costs of re-work Change avoidance: includes process activities that can stimulate user/stakeholder anticipation of needs/requirements before development begins. E.g., a prototype may allow users/stakeholders to better envision how the system would actually be used. Change tolerance: the development process and/or product may be designed to reduce change costs. If the systems is delivered in increments (e.g., via Mills Incremental Delivery), re-work may only be required in those increments that have already been developed. Information hiding techniques (isolating potentially changeable design decisions) may be employed in product design. Chapter 2 Software Processes Slide 31

32 Software prototyping Chapter 2 Software Processes Slide 32

33 What is prototyping? An iterative process emphasizing: Rapid development Concreteness and evaluative use (a real system is developed and presented to real users for hands-on evaluation) Consideration of alternatives Feedback Modification Chapter 2 Software Processes Slide 33

34 General Prototyping process What to include & what NOT to include. Establish prototype objectives Define prototype functionality Develop prototype Evaluate prototype Prototyping plan Outline definition Executable prototype Evaluation report Chapter 2 Software Processes Slide 34

35 Uses of prototypes Principal use is to help customers and developers better understand system requirements. Experimentation stimulates anticipation of how a system could/may actually be used. Attempting to use functions together to accomplish some task often reveals subtle requirements problems. (cont d) Chapter 2 Software Processes Slide 35

36 Uses of prototypes (cont d) Other potential uses: 1. Evaluating proposed solutions for feasibility (= Experimental Prototyping ) 2. Develop and evaluate User Interface designs 3. Back-to-back testing 4. Training users before system delivery Prototyping is most often undertaken as a risk reduction activity. Chapter 2 Software Processes Slide 36

37 Classifying prototypes By purpose: Throw-away prototyping to elicit and validate requirements Experimental prototyping to evaluate proposed solutions for feasibility, performance, etc. horizontal vs. vertical (breadth vs. depth) mockups vs. breadboards (form vs. function) Wizard of Oz prototyping (Turing test reversed) Chapter 2 Software Processes Slide 37

38 Throw-away prototyping Outline requirements Develop prototype Elicit/validate REQMTS Evaluate prototype Specify system Reusable components Develop software Validate system Delivered software system Chapter 2 Software Processes Slide 38

39 Classifying prototypes By purpose: Throw-away prototyping to elicit and validate requirements Experimental prototyping to evaluate proposed solutions for feasibility, performance, etc. horizontal vs. vertical (breadth vs. depth) mockups vs. breadboards (form vs. function) Wizard of Oz prototyping (Turing test reversed) Chapter 2 Software Processes Slide 39

40 Classifying prototypes By purpose: Throw-away prototyping to elicit and validate requirements Experimental prototyping to evaluate proposed solutions for feasibility, performance, etc. horizontal vs. vertical (breadth vs. depth) mockups vs. breadboards (form vs. function) Wizard of Oz prototyping (Turing test reversed) Chapter 2 Software Processes Slide 40

41 high Vertical prototype F i d e l i t y low points of comparable effort Horizontal prototype few Number of features many

42

43

44 Classifying prototypes By purpose: Throw-away prototyping to elicit and validate requirements Experimental prototyping to evaluate proposed solutions for feasibility, performance, etc. horizontal vs. vertical (breadth vs. depth) mockups vs. breadboards (form vs. function) Wizard of Oz prototyping (Turing test reversed) Chapter 2 Software Processes Slide 44

45 Quin Tech Self-service check-in and baggage drop-off design The design was tested through a full-scale mock-up. Chapter 2 Software Processes Slide 45

46 Electronic circuit on a breadboard (REUK.co.uk) There is no need to solder anything, and the components can be moved around and the circuit modified thousands of times without damaging parts. Chapter 2 Software Processes Slide 46

47 Classifying prototypes By purpose: Throw-away prototyping to elicit and validate requirements Experimental prototyping to evaluate proposed solutions for feasibility, performance, etc. horizontal vs. vertical (breadth vs. depth) mockups vs. breadboards (form vs. function) Wizard of Oz prototyping (Turing test reversed?) Chapter 2 Software Processes Slide 47

48 The Turing Test (Alan Turing, 1950) Chapter 2 Software Processes Slide 48

49 The Wizard of Oz exposed The truth is the Wizard was an illusion created by a man hidden behind a curtain. Chapter 2 Software Processes Slide 49

50 Prototyping versus simulation What s the difference between prototyping and simulation? Chapter 2 Software Processes Slide 50

51 Throw-away prototype delivery? Developers may be pressurized to deliver a throwaway prototype as the final system. This is problematic... It may be impossible to meet non-functional requirements with the prototype. The prototype is almost certainly undocumented. The system (prototype) may be poorly structured and therefore difficult to maintain. Normal organizational quality standards may not have been applied. Chapter 2 Software Processes Slide 51

52 No, no, no! I won t deliver the prototype to you! User Mgmt Developer Air Tank Pressurizing the Developer

53 Implementation techniques Various techniques may be used to implement prototypes: Dynamic, high-level languages Database programming (RAD) Component and application assembly These are NOT mutually exclusive they are often used together. Visual programming is also an inherent part of most prototype development systems. Chapter 2 Software Processes Slide 53

54 User interface prototyping User interface development consumes an increasing part of overall system development costs. It is usually impossible to pre-specify the look and feel of a complex user interface in an effective way. Thus, prototyping is essential. (cont d) Chapter 2 Software Processes Slide 54

55 User interface prototyping (cont d) Aim is to allow users to gain direct experience with the interface. Without this, it is almost impossible to judge usability. Often a two-stage process: paper prototypes are developed initially, followed by a series of increasingly sophisticated automated prototypes. Chapter 2 Software Processes Slide 55

56 Paper prototyping Step through scenarios using sketches of the interface. Use storyboards to present a series of interactions with the system. Paper prototyping is a cost-effective way of obtaining user reactions to an interface design proposal. Chapter 2 Software Processes Slide 56

57 (Mills ) Incremental Delivery (not to be confused with incremental development ) Chapter 2 Software Processes Slide 57

58 Incremental Delivery Rather than deliver the system as a single unit, the development and delivery is broken down into increments, each of which incorporates part of the required functionality. User requirements are prioritized and the highest priority requirements are included in early increments. Once the development of an increment is started, its requirements are frozen while requirements for later increments can continue to evolve. (Compromise between Waterfall & Incremental Development) (cont d) Chapter 2 Software Processes Slide 58

59 Incremental Delivery Define outline requirements Assign requirements to increments Design system architecture Develop system increment Valida te increment System incomplete Integrate increment Valida te system Final system (cont'd) Chapter 2 Software Processes Slide 59

60 Incremental development versus Incremental Delivery Incremental development Develop the system in increments that are made available for customer evaluation & feedback (but not usually for actual work in the customer s own environment) before proceeding to the development of the next increment; Normal approach used in agile methods (but may also be used in plan-driven development); Evaluation undertaken by user/customer (or a proxy). (Mills ) Incremental Delivery Deploy increments for actual work-place use by end-users; Permits more realistic evaluation of practical usefulness; Difficult to carry out for replacement systems as increments provide less functionality than the system being replaced. Chapter 2 Software Processes Slide 60

61 Advantages of Incremental Delivery Useful functionality is delivered with each increment, so customers derive value early. Early increments assist in eliciting requirements for later increments. Lower risk of overall project failure. The highest priority system services tend to receive the most testing. (They're subject to more validation steps.) (cont'd) Chapter 2 Software Processes Slide 61

62 Potential problems with Incremental Delivery Requirements may NOT be partitionable into usable, stand-alone increments. (e.g., consider a compiler) Most systems require a set of basic facilities that are used by different parts of the system. But since requirements are not defined in detail until an increment is to be implemented, it can be hard to identify common facilities that are needed by all increments to be useful. The essence of an iterative process is that the specification is developed in conjunction with the software. But this conflicts with the procurement model of many organizations, where the complete specification is part of the system development contract (also a problem with incremental development). Chapter 2 Software Processes Slide 62

63 Spiral development model Chapter 2 Software Processes Slide 63

64 Boehm s spiral development model Process is represented as a spiral rather than a sequence of activities. Each loop in the spiral represents a phase in the process. No fixed phases such as specification or design loops in the spiral are chosen depending on what is required. Explicitly incorporates risk assessment and resolution throughout the process. (cont'd) Chapter 2 Software Processes Slide 64

65 Boehm s spiral development model Chapter 2 Software Processes Slide 65

66 Boehm s spiral development model Determine objectives alternatives and constraints Plan next phase REVIEW Requirements plan Life-cycle plan Development plan Integration and test plan Risk analysis Risk analysis Risk analysis Prototype 2 Risk analysis Prototype 1 Concept of Operation S/W requirements Requirement validation Design V&V Service Acceptance test Prototype 3 Operational protoype Simulations, models, benchmarks Product design Integr ation test Evaluate alternatives identify, resolve risks Code Unit test Detailed design Develop, verify next-level product Chapter 2 Software Processes Slide 66

67 Spiral model quadrants Objective Setting specific objectives for the phase are identified. Project risks and alternative strategies are identified. Risk Assessment and Reduction risks are assessed and activities put in place to reduce the key risks. Development and Validation a development model for the system is chosen which can be any of the generic models. Planning the project is reviewed and the next phase of the spiral is planned. Chapter 2 Software Processes Slide 67

68 Spiral model usage The model has been very influential in helping people think about iteration in software processes and introducing the riskdriven approach to development. In practice, however, the model is rarely used as published for practical software development. Chapter 2 Software Processes Slide 68

69 RUP Chapter 2 Software Processes Slide 69

70 The Rational Unified Process A modern process model derived from the work on the UML and its associated process. A hybrid process model that brings together aspects of the generic process models discussed previously it represents a new generation of generic processes. Normally described from 3 perspectives A dynamic perspective that shows phases over time; A static perspective that shows process activities; A practice perspective that suggests good practices. Chapter 2 Software Processes Slide 70

71 RUP phase model in-phase iteration cross-phase iteration Phase iteration Inception Elaboration Construction Transition cf. Waterfall Model: RUP phases are more closely related to business rather than technical concerns. Chapter 2 Software Processes Slide 71

72 RUP phases Inception Establish the business case for the system. Elaboration Develop an understanding of the problem domain and the system architecture. Construction System design, programming and testing. Transition Deploy the system in its operating environment. Chapter 2 Software Processes Slide 72

73 Static workflows (process activities) in RUP Workflow Business modelling Requirements Analysis and design Implementation Description The business processes are modelled using business use cases. Actors who interact with the system are identified and use cases are developed to model the system requirements. A design model is created and documented using architectural models, component models, object models and sequence models. The components in the system are implemented and structured into implementation sub-systems. Automatic code generation from design models helps accelerate this process. Chapter 2 Software Processes Slide 73

74 RUP good practices Develop software iteratively: plan increments based on customer priorities and deliver highest priority increments first. Manage requirements: explicitly document and keep track of changes. Use component-based architectures: organize system architecture as a set of reusable components. (cont'd) Chapter 2 Software Processes Slide 74

75 RUP good practices (cont d) Visually model software: using graphical UML models to present static and dynamic views. Verify software quality: ensure software meets organizational quality standards. Control changes to software: using change management system and configuration management tools. Chapter 2 Software Processes Slide 75

76 Key points Software processes are the activities involved in producing and evolving a software system. They are represented abstractly by software process models. Generic models are very general and represent different approaches to development. Examples are the waterfall model, incremental development, and reuse-oriented development. (cont'd) Chapter 2 Software Processes Slide 76

77 Key points (cont d) Requirements engineering is the process of establishing what services are required and the constraints on the system s operation and development. Design and implementation processes produce an executable system based on the specification. V&V involves checking that the system meets its specification and satisfies user needs. Evolution is concerned with modifying the system after it is placed in use. Software must evolve to remain useful. (cont'd) Chapter 2 Software Processes Slide 77

78 Key points (cont d) Processes should include activities to cope with change. This may involve a prototyping phase that helps avoid poor decisions on requirements and design. Throw-away prototyping is used to explore requirements and design options. Rapid development of prototypes is essential. This usually requires leaving out functionality or relaxing non-functional constraints. (cont'd) Chapter 2 Software Processes Slide 78

79 Key points (cont d) Prototyping may be essential for parts of the system such as the user interface which cannot be effectively pre-specified. Users must be involved in prototype evaluation. The Rational Unified Process is a modern generic process model that is organized into phases (inception, elaboration, construction and transition) but separates activities (requirements, analysis and design, etc.) from these phases. Chapter 2 Software Processes Slide 79

80 Chapter 2 Software Processes Chapter 2 Software Processes Slide 80

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. CS 389 Software Engineering Lecture 2 Chapter 2 Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. Topics covered Software process models Process activities Coping

More information

Software Engineering. So#ware Processes

Software Engineering. So#ware Processes Software Engineering So#ware Processes 1 The software process A structured set of activities required to develop a software system. Many different software processes but all involve: Specification defining

More information

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Software Processes Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software process models To describe three generic process models and when

More information

To introduce software process models To describe three generic process models and when they may be used

To introduce software process models To describe three generic process models and when they may be used Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software

More information

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases Software Processes CSC 221 Introduction to Software Engineering software processes extract from Sommerville s chapter 3 slides Alan Dix Coherent sets of activities for specifying, designing, implementing

More information

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems Questions What is the life cycle of a software product? Why do we need software process models? What are the goals of a software process and what makes it different from other industrial processes? Software

More information

Modelli di sviluppo software. Enrico Giunchiglia

Modelli di sviluppo software. Enrico Giunchiglia Modelli di sviluppo software Enrico Giunchiglia The software development process A structured set of activities required to develop a software system, including Specification Design & Development Validation

More information

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software

More information

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI. bayu@unsri.ac.

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI. bayu@unsri.ac. The software process Software Development Methods Bayu Adhi Tama, ST., MTI. bayu@unsri.ac.id A structured set of activities required to develop a software system Specification; Design; Validation; Evolution.

More information

Software Engineering. Objectives. Designing, building and maintaining large software systems

Software Engineering. Objectives. Designing, building and maintaining large software systems Software Engineering Objectives Designing, building and maintaining large software systems To define software engineering and explain its importance To discuss the concepts of software products and software

More information

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci Software Engineering Software Development Process Models Lecturer: Giuseppe Santucci Summary Modeling the Software Process Generic Software Process Models Waterfall model Process Iteration Incremental

More information

Unit 1 Learning Objectives

Unit 1 Learning Objectives Fundamentals: Software Engineering Dr. Rami Bahsoon School of Computer Science The University Of Birmingham r.bahsoon@cs.bham.ac.uk www.cs.bham.ac.uk/~rzb Office 112 Y9- Computer Science Unit 1. Introduction

More information

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki SE464/CS446/ECE452 Software Life-Cycle and Process Models Instructor: Krzysztof Czarnecki 1 Some of these slides are based on: Lecture slides by Ian Summerville accompanying his classic textbook software

More information

Software Engineering. Software Engineering. Software Costs

Software Engineering. Software Engineering. Software Costs Software Engineering Software Engineering is the science and art of building significant software systems that are: 1) on time 2) on budget 3) with acceptable performance 4) with correct operation. Ian

More information

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development 1 Objectives To explain how an iterative, incremental development process leads to faster delivery of more useful software To discuss the essence of agile development methods

More information

CS4507 Advanced Software Engineering

CS4507 Advanced Software Engineering CS4507 Advanced Software Engineering Lectures 2 & 3: Software Development Lifecycle Models A O Riordan, 2015 Some diagrams from Sommerville, some notes from Maciaszek/Liong Lifecycle Model Software development

More information

Lecture 3 Software Development Processes

Lecture 3 Software Development Processes Lecture 3 Software Development Processes Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte September 2, 2008 Lecture Overview

More information

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering Prof. Dr. Armin B. Cremers Sascha Alda Overview Phases during Software Development

More information

Software Processes. Topics covered

Software Processes. Topics covered Software Processes cmsc435-1 Topics covered Systems vs. software engineering Software process models Process iteration Process activities Computer-aided software engineering cmsc435-2 What is a system?

More information

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Objectives To explain how an iterative, incremental development process leads to faster delivery of

More information

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology Peter Mileff PhD SOFTWARE ENGINEERING The Basics of Software Engineering University of Miskolc Department of Information Technology Introduction Péter Mileff - Department of Information Engineering Room

More information

Foundations of software engineering

Foundations of software engineering Foundations of software engineering Waterfalls, V s and Spirals: Standard SE Methodologies Dr. Julie Greensmith G51 Objectives To introduce three of the major software process models: Waterfall methods

More information

Rapid Software Development

Rapid Software Development Software Engineering Rapid Software Development Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain how an iterative, incremental development process leads to faster delivery

More information

Classical Software Life Cycle Models

Classical Software Life Cycle Models Classical Software Life Cycle Models SWEN 301 Trimester 1, 2015 Lecturer: Dr Hui Ma Engineering and Computer Science Lecture slides make use of material provided on the textbook's companion website Motivation

More information

IV. Software Lifecycles

IV. Software Lifecycles IV. Software Lifecycles Software processes and lifecycles Relative costs of lifecycle phases Examples of lifecycles and processes Process maturity scale Information system development lifecycle Lifecycle

More information

Advanced Software Engineering. Software Development Processes

Advanced Software Engineering. Software Development Processes Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Advanced Software Engineering Software Development Processes Prof. Agostino Poggi Software Development

More information

General Problem Solving Model. Software Development Methodology. Chapter 2A

General Problem Solving Model. Software Development Methodology. Chapter 2A General Problem Solving Model Software Development Methodology These focus on understanding what the problem is about Chapter 2A Concerned with understanding more about the nature of the problem and possible

More information

Software Life Cycle Processes

Software Life Cycle Processes Software Life Cycle Processes Objective: Establish a work plan to coordinate effectively a set of tasks. Improves software quality. Allows us to manage projects more easily. Status of projects is more

More information

Development Methodologies

Development Methodologies Slide 3.1 Development Methodologies Prof. Dr. Josef M. Joller jjoller@hsr.ch Development Methodologies Prof. Dr. Josef M. Joller 1 Session 3 Slide 3.2 SOFTWARE LIFE-CYCLE MODELS Development Methodologies

More information

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution Software Life Cycle Main issues: Discussion of different life cycle models Maintenance or evolution Not this life cycle SE, Software Lifecycle, Hans van Vliet, 2008 2 Introduction software development

More information

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Year 2014, Vol. 1, issue 1, pp. 49-56 Available online at: http://journal.iecuniversity.com TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Singh RANDEEP a*, Rathee AMIT b a* Department of

More information

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng Software Development Process and Activities CS 490MT/5555, Fall 2015, Yongjie Zheng Software Process } A set of activities that leads to the production of a software product } What product we should work

More information

Software Production and Lifecycle Models

Software Production and Lifecycle Models Software Production and Lifecycle Models 1 Problem Definition Change Architectural Design Verification Personnel Basic Phases Potential Difficulties, Verification, and Testing Implementation and Integration

More information

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 20-21 The Unified Process Dynamic dimension Two dimensions Content

More information

I219 Software Design Methodology

I219 Software Design Methodology I219 Software Design Methodology JAIST Master s Program Fall 2014 Nguyen Van Vu nvu@fit.hcmus.edu.vn Topics Course Introduction Objectives and Scope Evaluation Policies Content and Schedule Basic Concepts

More information

Agile So)ware Development

Agile So)ware Development Software Engineering Agile So)ware Development 1 Rapid software development Rapid development and delivery is now often the most important requirement for software systems Businesses operate in a fast

More information

Software Engineering

Software Engineering 1 Software Engineering Lecture 2: Software Life Cycles Stefan Hallerstede Århus School of Engineering 25 August 2011 2 Contents Naive Software Development Code & Fix Towards A Software Process Software

More information

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) Prescriptive Process Model Defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high quality

More information

Test Cases Design for Software Database Provisioning Development

Test Cases Design for Software Database Provisioning Development Test Cases Design for Software Database Provisioning Development Sunguk Lee Research Institute of Industrial Science and Technology Pohang, Gyeongbuk, South Korea sunguk@rist.re.kr Abstract This paper

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering

More information

Overview. Software engineering and the design process for interactive systems. Standards and guidelines as design rules

Overview. Software engineering and the design process for interactive systems. Standards and guidelines as design rules Overview Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering Iterative design and prototyping Design rationale A. Dix, J.

More information

Software Development Life Cycle (SDLC)

Software Development Life Cycle (SDLC) Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process

More information

What is a life cycle model?

What is a life cycle model? What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each

More information

CSE 435 Software Engineering. Sept 16, 2015

CSE 435 Software Engineering. Sept 16, 2015 CSE 435 Software Engineering Sept 16, 2015 2.1 The Meaning of Process A process: a series of steps involving activities, constraints, and resources that produce an intended output of some kind A process

More information

Chap 1. Introduction to Software Architecture

Chap 1. Introduction to Software Architecture Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)

More information

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities Software Life Cycle Lecture Objectives What happens in the life of software To look at the life cycle of a software To understand the software process and its related elements To relate to the different

More information

Software Process and Models

Software Process and Models Agenda Software Process Models Plan-driven Process Models Software Process and Models A software process model simplified, abstracted description of a software development process. A model is good for

More information

Plan-Driven Methodologies

Plan-Driven Methodologies Plan-Driven Methodologies The traditional way to develop software Based on system engineering and quality disciplines (process improvement) Standards developed from DoD & industry to make process fit a

More information

Chapter 3. Software Processes

Chapter 3. Software Processes Chapter 3. Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems 1 Objectives To introduce the concept of software process and software process

More information

J.S. Bradbury, J.R. Cordy

J.S. Bradbury, J.R. Cordy J.S. Bradbury, J.R. Cordy Software Process I Quality in Context In order to understand the roles of quality assurance in software development, we must understand how software development works - we cannot

More information

And the Models Are 16-03-2015. System/Software Development Life Cycle. Why Life Cycle Approach for Software?

And the Models Are 16-03-2015. System/Software Development Life Cycle. Why Life Cycle Approach for Software? System/Software Development Life Cycle Anurag Srivastava Associate Professor ABV-IIITM, Gwalior Why Life Cycle Approach for Software? Life cycle is a sequence of events or patterns that are displayed in

More information

The most suitable system methodology for the proposed system is drawn out.

The most suitable system methodology for the proposed system is drawn out. 3.0 Methodology 3.1 Introduction In this chapter, five software development life cycle models are compared and discussed briefly. The most suitable system methodology for the proposed system is drawn out.

More information

COMP 354 Introduction to Software Engineering

COMP 354 Introduction to Software Engineering COMP 354 Introduction to Software Engineering Greg Butler Office: EV 3.219 Computer Science and Software Engineering Concordia University, Montreal, Canada Email: gregb@cs.concordia.ca Winter 2015 Course

More information

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice In this Lecture you will Learn: Development Chapter 5C About the Unified Software Development How phases relate to workflows in an iterative life cycle An approach to system development Major activities

More information

A Capability Maturity Model (CMM)

A Capability Maturity Model (CMM) Software Development Life Cycle (SDLC) and Development Methods There are some enterprises in which a careful disorderliness is the true method. Herman Melville Capability Maturity Model (CMM) A Capability

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 15 Agile Methodologies: AUP 1 Agile Unified Process (AUP) Proposed by Ambler as a simplified version of the Rational Unified Process (RUP).

More information

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit Development models R. Kuiper and E.J. Luit 1 Introduction We reconsider the classical development models: the Waterfall Model [Bo76], the V-Model [Ro86], the Spiral Model [Bo88], together with the further

More information

CSCI-485: Software Design

CSCI-485: Software Design CSCI-485: Software Design Lecture 6 Note: Some slides adapted from Software Engineering by Ian Sommerville Software Processes Code-and-fix model Software process model used in the early days of computing

More information

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2).

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2). 0305203 0305280 0305301 0305302 Software Engineering/Courses Description Introduction to Software Engineering Prerequisite: 0306211(Computer Programming 2). This course introduces students to the problems

More information

A complete software development process of a general report publication service implemented using Web Services

A complete software development process of a general report publication service implemented using Web Services A complete software development process of a general report publication service implemented using Web Services Anders Nilsson & Klas Fahlberg February 1, 2008 Master s Thesis in Computing Science, 2*30

More information

Software Engineering. What is a system?

Software Engineering. What is a system? What is a system? Software Engineering Software Processes A purposeful collection of inter-related components working together to achieve some common objective. A system may include software, mechanical,

More information

Improving Software Development Economics Part II: Reducing Software Product Complexity and Improving Software Processes

Improving Software Development Economics Part II: Reducing Software Product Complexity and Improving Software Processes Improving Software Development Economics Part II: Reducing Software Product Complexity and Improving Software Processes by Walker Royce Vice President and General Manager Strategic Services Rational Software

More information

Software Engineering Reference Framework

Software Engineering Reference Framework Software Engineering Reference Framework Michel Chaudron, Jan Friso Groote, Kees van Hee, Kees Hemerik, Lou Somers, Tom Verhoeff. Department of Mathematics and Computer Science Eindhoven University of

More information

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali Software development life cycle Software life cycle: Software Engineering - II ITNP92 - Object Oriented Software Design Dr Andrea Bracciali Module Co-ordinator 4B86 abb@cs.stir.ac.uk Spring 2014 (elicitation)

More information

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective: CS 487 Week 8 Reading: 1. Ian Sommerville, Chapter 3. Objective: 1. To check the understandibility of the students in life cycle and process model for development of a software product. 2. To check if

More information

Unit I. Introduction

Unit I. Introduction Unit I Introduction Product Life Cycles Products also have life cycles The Systems Development Life Cycle (SDLC) is a framework for describing the phases involved in developing and maintaining information

More information

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Software process model

Ingegneria del Software Corso di Laurea in Informatica per il Management. Software process model Ingegneria del Software Corso di Laurea in Informatica per il Management Software process model Davide Rossi Dipartimento di Informatica Università di Bologna The task of the software development team

More information

Karunya University Dept. of Information Technology

Karunya University Dept. of Information Technology PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main

More information

Elite: A New Component-Based Software Development Model

Elite: A New Component-Based Software Development Model Elite: A New Component-Based Software Development Model Lata Nautiyal Umesh Kumar Tiwari Sushil Chandra Dimri Shivani Bahuguna Assistant Professor- Assistant Professor- Professor- Assistant Professor-

More information

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Component-Based Software Engineering Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain that CBSE is concerned with developing standardised components

More information

Agile methods. Objectives

Agile methods. Objectives Agile methods CMSC435-1 Objectives To explain how an iterative, incremental development process leads to faster delivery of more useful software To discuss the essence of agile development methods To explain

More information

RUP for Software Development Projects

RUP for Software Development Projects RUP for Software Development Projects George Merguerian www.bmc-online.com 1 Specialists in Global Project Management Brussels Frankfurt Houston Istanbul Milan Ottawa Shanghai Singapore Warsaw Washington

More information

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design Session # 3 Contents Systems Analysis and Design 2 1 Tiers of Software Development 10/4/2013 Information system development project Realistic behavior 3 Information system development project System Development

More information

IT3205: Fundamentals of Software Engineering (Compulsory)

IT3205: Fundamentals of Software Engineering (Compulsory) INTRODUCTION : Fundamentals of Software Engineering (Compulsory) This course is designed to provide the students with the basic competencies required to identify requirements, document the system design

More information

1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4)

1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4) 1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4) A software process model is a standardised format for planning organising, and running a development project. 1 Hundreds of different models

More information

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Design with Reuse Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Objectives To explain the benefits of software reuse and some reuse

More information

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.) The Software Process Xiaojun Qi 1 The Unified Process Until recently, three of the most successful object-oriented methodologies were Booch smethod Jacobson s Objectory Rumbaugh s OMT (Object Modeling

More information

Software Project Models

Software Project Models INTERNATIONAL JOURNAL OF TECHNOLOGY ENHANCEMENTS AND EMERGING ENGINEERING RESEARCH, VOL 1, ISSUE 4 135 Software Project Models Abhimanyu Chopra, Abhinav Prashar, Chandresh Saini Email-abhinav.prashar@gmail.com,

More information

Software Engineering Question Bank

Software Engineering Question Bank Software Engineering Question Bank 1) What is Software Development Life Cycle? (SDLC) System Development Life Cycle (SDLC) is the overall process of developing information systems through a multi-step

More information

Basic Unified Process: A Process for Small and Agile Projects

Basic Unified Process: A Process for Small and Agile Projects Basic Unified Process: A Process for Small and Agile Projects Ricardo Balduino - Rational Unified Process Content Developer, IBM Introduction Small projects have different process needs than larger projects.

More information

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology Process Methodology for Wegmans Deli Kiosk Version 1.0 Prepared by DELI-cious Developers Rochester Institute of Technology September 15, 2013 1 Table of Contents 1. Process... 3 1.1 Choice... 3 1.2 Description...

More information

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing. Processing Models Of SDLC Mrs. Nalkar Sanjivani Baban Asst. Professor, IT/CS Dept, JVM s Mehta College,Sector 19, Airoli, Navi Mumbai-400708 Nalkar_sanjivani@yahoo.co.in Abstract This paper presents an

More information

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project. 6. Software Lifecycle Models A software lifecycle model is a standardised format for planning organising, and running a new development project. Hundreds of different kinds of models are known and used.

More information

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: The period of time that starts when a software product is conceived and ends when the product is no longer

More information

Software Development Process Models

Software Development Process Models Software Development Process Models Balasankar C S1 M.Tech CSE 1 / 24 Software Development Process Models Activities directly related production design, coding, testing Specifies major development & quality

More information

Software Engineering UNIT -1 OVERVIEW

Software Engineering UNIT -1 OVERVIEW UNIT -1 OVERVIEW The economies of ALL developed nations are dependent on software. More and more systems are software controlled. Software engineering is concerned with theories, methods and tools for

More information

A Process Programmer Looks at the Spiral Model

A Process Programmer Looks at the Spiral Model A Process Programmer Looks at the Spiral Model A Tribute to the Deep Insights of Prof. Barry W. Boehm Leon J. Osterweil University of Massachusetts Amherst Institute of Software Chinese Academy of Sciences

More information

Software Development Process

Software Development Process Software Development Process A software development process, also known as software development lifecycle, is a structure imposed on the development of a software product. Similar terms include software

More information

Software Process for QA

Software Process for QA Software Process for QA Basic approaches & alternatives CIS 610, W98 / M Young 1/7/98 1 This introduction and overview is intended to provide some basic background on software process (sometimes called

More information

A Review of an MVC Framework based Software Development

A Review of an MVC Framework based Software Development , pp. 213-220 http://dx.doi.org/10.14257/ijseia.2014.8.10.19 A Review of an MVC Framework based Software Development Ronnie D. Caytiles and Sunguk Lee * Department of Multimedia Engineering, Hannam University

More information

SOFTWARE PROCESS MODELS

SOFTWARE PROCESS MODELS SOFTWARE PROCESS MODELS Slide 1 Software Process Models Process model (Life-cycle model) - steps through which the product progresses Requirements phase Specification phase Design phase Implementation

More information

LECTURE 1. SYSTEMS DEVELOPMENT

LECTURE 1. SYSTEMS DEVELOPMENT LECTURE 1. SYSTEMS DEVELOPMENT 1.1 INFORMATION SYSTEMS System A system is an interrelated set of business procedures used within one business unit working together for a purpose A system has nine characteristics

More information

2. Analysis, Design and Implementation

2. Analysis, Design and Implementation 2. Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Individual Programs to Complete Application Systems Software Development: Goals, Tasks, Actors,

More information

What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software production.

What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software production. UNIT I - SOFTWARE PROCESS AND PROJECT MANAGEMENT Introduction to Software Engineering, Software Process, Perspective and Specialized Process Models Software Project Management: Estimation LOC and FP Based

More information

Requirements Engineering Process

Requirements Engineering Process Software Engineering Requirements Engineering Process Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To describe the principal requirements engineering activities and d their

More information

Introduction to Systems Analysis and Design

Introduction to Systems Analysis and Design Introduction to Systems Analysis and Design What is a System? A system is a set of interrelated components that function together to achieve a common goal. The components of a system are called subsystems.

More information

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005 Principles of Software Engineering: Software Methodologies COSI 120b, Spring 2005 Overview What are methodologies? The methodologies Traditional Incremental Evolutionary Other Conclusions Way Forward What

More information

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements

More information

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3 INTRODUCTION This course is designed to provide the students with the basic competencies required to identify requirements, document

More information