Transcript
8/2/2019 Software Engineering Unit1
1/34
Software Engineering
Prof. Archana Deshpande
8/2/2019 Software Engineering Unit1
2/34
Course Objective
To understand the fundamental concepts of -
1. SDLC phases
2. Software Process
3. Requirement Phase
4. Data Modeling Practices
5. OOA and OOD Tools
6. Design Phase
7. Testing Phase
8. Software Standards and Metrics
8/2/2019 Software Engineering Unit1
3/34
Syllabus of SE
Unit 1 - Software, modules, process, process framework,process models, SEI-CMMI model, Introduction toUnified process and Agile
Unit 2 Requirements engineering, Problem Definition,Scope, Negotiation, Requirements Management,Gathering
Unit 3 - Structured Systems Tools and Techniques fact
finding tools, FDD, ERD, CLD, DFD, Decision Trees,Decision Tables, Structured English
Unit 4 - Software Engineering Practice Data Modeling,System Modeling, Hatley - Pirbhai Modeling, object
oriented modeling through state transition diagrams
8/2/2019 Software Engineering Unit1
4/34
Unit 5 - UML tools and techniques for Web based/ObjectOriented Applications Class Hierarchy diagrams,Use Case diagrams, Sequence diagrams
Unit 6 - Design Process, User Interface Design, Cohesion,Coupling
Unit 7 - Testing- Strategies, Techniques, Alpha, Beta, Unit,
Integration, Validation, Regression, Smoke, SystemTesting, Debugging, Basis Path, Black box, White box,Boundary Value Analysis, Test Cases
Unit 8 - Product Metrics: Software Quality, Function-based,Size-based, ISO
8/2/2019 Software Engineering Unit1
5/34
Books Recommended
Analysis and Design of Information Systems 2e by Senn Software Engineering A Practitioner's Approach by Roger Pressman Systems Analysis and Design by Elias Awad Introducing Systems Analysis and Design by Lee
Systems Analysis & Design by Perry Edwards (McGraw Hill)
Systems Analysis, Design & Introduction to Software Engineering(SADSE) - Parthasarthy S, Khalkar B W Management Information Systems Waman Jawadekar
INTERNET RESOURCES:-
1) en.wikipedia.org/wiki/Software_engineering2) www.webopedia.com3) www.rspa.com/spi/4) www.answers.com/topic/software-engineering5) en.wikibooks.org/wiki/Software_Engineering6) www.sei.cmu.edu
7) www.freetutes.com/systemanalysis/
http://www.en.wikipedia.org/wiki/Software_engineeringhttp://www.webopedia.com/http://www.rspa.com/spi/http://www.answers.com/topic/software-engineeringhttp://www.en.wikibooks.org/wiki/Software_Engineeringhttp://www.sei.cmu.edu/http://www.freetutes.com/systemanalysis/http://www.freetutes.com/systemanalysis/http://www.sei.cmu.edu/http://www.en.wikibooks.org/wiki/Software_Engineeringhttp://www.answers.com/topic/software-engineeringhttp://www.answers.com/topic/software-engineeringhttp://www.answers.com/topic/software-engineeringhttp://www.rspa.com/spi/http://www.webopedia.com/http://www.en.wikipedia.org/wiki/Software_engineering8/2/2019 Software Engineering Unit1
6/34
Unit 1
Software Engineering andSoftware Process
8/2/2019 Software Engineering Unit1
7/34
Unit Objectives
To understand the concepts of
Software
Software Engineering
Modules
Process Process Models
8/2/2019 Software Engineering Unit1
8/34
Software
What is a Software?
8/2/2019 Software Engineering Unit1
9/34
Characteristics of a Software
Software is developed or engineered; notmanufactured.
Software doesnt wear out.
Most software are custom built.
8/2/2019 Software Engineering Unit1
10/34
System
Application
Engineering / Scientific
Embedded
Product
Line Web Applications
Artificial Intelligence
Categories of Software
8/2/2019 Software Engineering Unit1
11/34
Software Module
What is a module?
8/2/2019 Software Engineering Unit1
12/34
Software Engineering
The application of a systematic, disciplined,quantifiable approach to the development,operation, and maintenance of software is
Software Engineering. (IEEE) Software Engineeringis the establishment
and use of sound engineering principles inorder to obtain economically software thatis reliable and works efficiently on realmachines. (Bauer)
8/2/2019 Software Engineering Unit1
13/34
Layers of Software Engineering
Tools
Methods
ProcessQuality
Quality is the base for all the 3 layersof SE -
Process
Methods
Tools
Quality focus Total Quality
Management (TQM), Six Sigma, ISO,CMMI etc.
8/2/2019 Software Engineering Unit1
14/34
Process
A set of activities, methods, practices,and transformations that people
employ to develop and maintainsoftware and the associated products(e.g. project plans, design documents,
code, test cases, user manuals etc.)
8/2/2019 Software Engineering Unit1
15/34
Process Framework
Process frameworkneeds to identifysmall number of
framework activitiesapplicable to allsoftware projects.
Umbrella activities areapplicable across theentire softwareprocess.
Software Process
Process Framework
Umbrella activitiesFramework activity # 1
Framework activity # 2
S/W Engg. Action # 1.1
Tasksets
Work tasksWork productsQA pointsProject milestones
8/2/2019 Software Engineering Unit1
16/34
Communication
Planning
Modeling Construction
Deployment
The framework activities are commonto all the software process; details ofthe software process may change.
Generic process framework
8/2/2019 Software Engineering Unit1
17/34
For example, modeling activity consists oftwo software engineering actions Analysis
and Design. Analysis has a set of work tasks like
requirements gathering, negotiation,specification, validation etc.
Design has work tasks like data design,architectural design, interface design, andcomponent design.
8/2/2019 Software Engineering Unit1
18/34
Umbrella activities
Software project tracking and control
Risk Management
Software Quality Assurance Formal Technical Reviews
Measurement
Software Configuration Management Reusability Management
Work Product Preparation and Production
8/2/2019 Software Engineering Unit1
19/34
Process Models
Waterfall
Incremental
RAD
Prototyping
Spiral
8/2/2019 Software Engineering Unit1
20/34
Waterfall model
8/2/2019 Software Engineering Unit1
21/34
Incremental model
8/2/2019 Software Engineering Unit1
22/34
RAD model
8/2/2019 Software Engineering Unit1
23/34
Prototyping model
8/2/2019 Software Engineering Unit1
24/34
Spiral model
8/2/2019 Software Engineering Unit1
25/34
SEI - CMMI
8/2/2019 Software Engineering Unit1
26/34
Focuses on elements of essential practices andprocesses from various bodies of knowledge.
Describes common sense, efficient, proven ways ofdoing business (which you should already be doing)- not a radical new approach.
CMM is a method to evaluate and measure thematurity of the software development process of anorganizations.
CMM measures the maturity of the softwaredevelopment process on a scale of 1 to 5.
CMM v1.0 was developed by the SoftwareEngineering Institute (SEI) at Carnegie MellonUniversity in Pittsburgh, USA.
SEI- CMM
8/2/2019 Software Engineering Unit1
27/34
CMM was originally developed for SoftwareDevelopment and Maintenance but later it wasdeveloped for : Systems Engineering Supplier Sourcing Integrated Product and Process Development People CMM Software Acquisition Others...
CMM Examples:
People CMM: Develop, motivate and retain projecttalent.
Software CMM: Enhance a software focuseddevelopment and maintenance capability.
8/2/2019 Software Engineering Unit1
28/34
Unified process
Use case driven
Architecture centric
Iterative and incremental
Formed by James Rumbaugh, Grady Booch, andIvar Jacobson
Unified Modeling Language (UML) - an industry
standard for OO software development. Using UML, a framework developed for OO-SE
called as Unified Process.
8/2/2019 Software Engineering Unit1
29/34
Phases of the Unified Process
8/2/2019 Software Engineering Unit1
30/34
Phases of the UP
The UP defines the following four phases:
The Inception phase concludes with theObjective milestone
The Elaboration phase concludes withthe Architecture milestone
The Construction phase concludes with
the Initial Operational Capabilitymilestone
The Transition phase concludes with theProduct Release milestone
8/2/2019 Software Engineering Unit1
31/34
Describe all the phases of UP in detail.
8/2/2019 Software Engineering Unit1
32/34
Rational Unified Process (RUP)originally developed by Rational
Software, a company later acquired byIBM.
Rational Rose popular UMLmodeling solution by IBM
Agile Unified Process
Basic Unified Process
8/2/2019 Software Engineering Unit1
33/34
Agile software development Iterative and incremental development Self-organizing, cross-functional teams. Minimally planned tasks in small increments No long-term planning.
Iterations last from one to four weeks. Emphasizes face-to-face communication Work in a single open office (called a bullpen
Includes Scrum, Crystal Clear, ExtremeProgramming, Adaptive Software Development,Feature Driven Development, and DynamicSystems Development Method (DSDM).
These are now typically referred to as AgileMethodologies
8/2/2019 Software Engineering Unit1
34/34
top related