SlideShare a Scribd company logo
1 of 89
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
1
V SEMESTER
SOFTWARE ENGINEERING
UNIT I
 Introduction
 What is software
 What is software engineering
 Software process
 Software process model
 Software engineering methods
 Emergent System properties
 System engineering
 System requirements
 System design
 System modeling
 sub system development
 System integration
 System evolution
 System decommissioning
 System procurement
 Software processes: Software process models:
1. The waterfall model
2. Evolutionary development
3. Spiral development
 CASE
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
2
What is software?
 Software is a set of program, associated document and the data that is needed to make
this program operate correctly.
Software Product:-
 It is a software system deliver to the customer with the documentation which describes
how to install and use the system.
 Software product can be classified as follow
Generic
Customized or Bespoke
Generic product:-
 There are stand alone systems which are produced by development organization sold on
the open market to any customer who is able to buy them.
 E.g.: Operating system, MS Office
Customized or Bespoke:-
 These are system which is developed for a particular customer.
 The software is developed specially for that customer by some contractor.
 E.g.: Railway Reservation, Banking
Software Product Attributes
 The following are some of the attributes
Maintainability
Dependability
Efficiency
Usability
Maintainability:-
 Software System should be developed in such a way that it may evolve to meet changing
the need of customer.
 This is an important attributes because in today’s world changes are unavoidable.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
3
Dependability:-
 One software system is always depending on some other software system Hence, A
failure in one software system should not make any physical or economical damage to
other system.
 It means that if one system is not working properly another system will not be affected.
Efficiency:-
 System resources such as CPU time and memory space should not be wasted.
 The system should fake less time for processing and must give response in a fast
manner.
Usability:-
 The software should have an appropriate user interface and adequate documentation.
Software Process:-
 Software is set of activities and related results to produce a software product.
 All activities in the software process are carried out by the software engineers.
 There are four fundamental activities
Software Specification
Software Development
Software validation
Software Evolution
Software Specification:-
 The functionality of a software and limitation on the operation of the software specified.
 That is list out what the software will do? And What the Software will not do?
Software development:-
 The software development is started by writing programs in a way that software must
meet the particular specification.
Software Validation:-
 The software must be tested or validated to ensure that our software product is
producing what the customer wants.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
4
Software Evolution:-
 The software must be developed such the way that as went a customer requirement our
software adapt with a change.
Emerged system properties
 The emerged system properties are the system attributes.
 The value of these emergent properties can’t in advance.
 They can be only measure after integrating all sub systems.
 They are two types of emergent system properties are:
Functional properties
Non Functional property
Functional properties:-
 The functional properties will appear when all the part of the system to work together.
Non Functional properties:-
 Non functional properties to relate to the behavior of the system it needs operational
environment.
 These are very important and critical for any computer based system.
 If non functional system properties are not defined clearly then the system will be UN
useable.
 Some of the non functional emergent system properties are
Reliability
Performance
Safety
Security
 As for reliability is constrain three factor influencing the reliability of a system
Hardware Reliability
Software Reliability
Operator Reliability
Hardware Reliability:-
 Hardware reliability means how often the hardware will fail and how much time takes
to repair to this hardware.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
5
Software Reliability:-
 Software Reliability means how a software component produces an incorrect result,
whether the software is continuously working even after producing an incorrect result.
Operator Reliability:-
 The operator of a system will make an error. So that how reliable the operator is?
System and their Environment
 No system is working independently all system are dependent and existing in an
environment.
 Certainly environment does affect the functioning and performance of an every system.
 The factor these are affecting system & design are
Process changes
Job changes
Organization changes
Process changes:-
 It means the changes in organization make any significant change.
 Weather training is occur; the user are resisting the system the new system will make
job losses.
Job changes:-
 The system will make the change the user.
 De-skill or more skill our system will make a working style of manager are not
Organizationchanges:-
 Our system will change political power of the organization.
System engineering process
Introduction:-
 It is the inter-disciplinary activity.
 The software to be developed must be flexible.
 So that many unexpected problems to be solved only by the software engineer.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
6
 Much software is failed because software engineers are not able to enhance the
software capability without increase the hardware cost.
 Different activity involved in system engineering process is
System Requirement Definition
System Design
Sub system Development
System Integration
System Installation
System operation
System Evolution
System Decommissioning
System Requirement Definition
 In consultation with system customer and end users.
 The system engineer has to design the system requirement.
 There are three types of
Abstract function requirement
System properties
Characteristic system must not exhibit
Abstract functionrequirement:-
 The basic function of the system are define at an abstract level (Not in a detail level)
Systemproperties:-
 Non functional emergent property is described here.
Characteristic system must not exhibit:-
 System designer must clearly specify that what the system should not do.
System Design
 It means assign system functionality two different component.
 Different activity involve in this process are
Partition Requirement
Identify Subsystem
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
7
Assign Requirement to Subsystem
Specify Subsystem functionality
Define Subsystem Interface
Partition Subsystem:-
 Different subsystem to meet the requirement are identify individually or collectively.
 Sub system identification has been affected by the organization process or outside
factor.
Assign Requirement to Subsystem:-
 It is not an easy job. Because there is no clear match between the requirement and
subsystem.
 E.g.: If we purchase COTS then requirement most is modified.
Specify Subsystemfunctionality:-
 At the state, relationship between subsystem are identify function of each subsystem are
specified.
Define SubsystemInterface:-
 Link between one sub systems is called interface.
 During development, when interface are clearly defined then parallel development can
be possible.
Subsystem Development
 During this state identify subsystem design are implemented.
 If a subsystem is a software system, then subsystem are developed from scratch (new).
Some of the sub system may be COTS.
 Different subsystem is usually developed in parallel, when system needs more hardware
engineering than manufacturing is very expensive.
System Integration
 In system integration indecently developed subsystem are combine together to make
complete system Integration can be performed by two approaches.
Big Bang Approach
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
8
Incremental Approach
Big Bang Approach:-
 In big bang approach all the sub system are integrated at the same time.
Incremental Approach:-
 In incremental approach sub system are integrated one at a time.
System Installation
 During system installation the entire system is put it into the environment that is at the
customer side.
 During these stage the following may be appear
 The environment in which the system is to be installed is not the same as before.
 Potential user of the system may oppose the new system.
 Our new system may have two co-exists with an existing system. If organization a
satisfied with the new system, then only old system will be stopped.
 Physical installation problem may also be appearing.
System Operation
 System operation means it is put it into operation. During this state training session are
organized for users.
 At this state many problem and errors may arrives.
 We may come to know errors and omission.
 Many problems are of the following type
Data transfer
User Interface
Operator error rate problem
System Evolution
 The large and complex system has a very long life time.
 During the use, they have to subject to many errors and new requirement.
 The organization which gives such system we change it. External factors may also affect
the system.
 Hence, the system evolution is an important costly process.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
9
 The amount and time for keeping software useful are called evolution.
System Decommissioning
 Taking the system out of service is called system decommissioning some tie it is an easy
work.
 But mostly it will damage the environment. A system engineer must anticipate with the
problem related with decommissioning at the time design the software.
System procurement
 In large organization the system may be purchased as a whole or part of a system is
purchased or integrated or design and developed completely in their own.
 The option for the above three is called system Procurement.
 A system procurement process is completely a division making process.
 The system procurement process as following activities
Issuing request for proposal
Choosing a supplier
Making contract for the system
Adopt
Requirement
Choose
System
Issue request
for bids
Choose
supplier
Survey market
for existing
system
Issue request
to tenders
Sole of
tender
Negotiate
contract
Contract
for
developer
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
10
 It shows the procurement process for existing system and newly designed system.
 COTS components usually not match exactly when a system by the contract for own the
main.
 After designing the contractor discussion must be had with them about changes in the
requirement in the future.
 It shows usually there are only one main contractor and mainly sub contractors.
 Every sub contractor design and develop part of the system.
 After every sub contractor completing his own system. The principle contractor
integrated all the sub system and then delivers to the customer.
Software process Model
Introduction:-
 It is an abstract representation of software process. A model provides partial
information about the process.
 A software model provides frame work of the process.
 Software process model can be used to explain different activities involved in software
development.
 There are many model uses for development. Some process models are
System
Customer
Principle
contract
Sub
contract 1
Sub
contract 1
Sub
contract 1
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
11
Waterfall
Evolutionary development model
Formal system development model
Reused based development model
Waterfall Model
 The first published model of the software development process was waterfall model.
 Figure shows such as model there is a cascading from one Phase to another Phase this
model is also known as software development life cycle model.
 The main stages of the models are
Requirements definition:-
 At this stage system services, constrains and goals are clearly defined in consultation
with systems users.
 System specification is defined in detail manner.
Requirement
Definition
Systemand
software design
Implementing
&unittesting
Integrating &
Systemtesting
Operationand
maintenance
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
12
System& Software Design:-
 In this process, the system requirement is partition in accordance with hardware and
software.
 Fundamental software systems are identified.
 Overall system architecture is established.
Implementation & Unit Testing:-
 In this stage only the developer started writing program this is called codification.
 Programs are developed as module unique and every module is tested with test date.
 Every module is verified that customer requirements are satisfied or not.
Integration & SystemTesting:-
 Individual units are integrated and tested as a complete system.
 Testing is performed and enters system to ensure that software requirement is satisfied.
Operation& Maintenance:-
 This is a stage in water fall model take longest life cycle time.
 During these stage the system is install and let it into practical use it the customer side.
 Maintenance means when system gives problem during operations, it must be
corrected.
 During this stage new errors may be discovered and new requirement may be
incorporated new enhanced may be proposed.
Disadvantages of waterfall model:-
 In each stage some document are prepared and approved.
 The waterfall model is inflexible.
 The developer must be committed in each state. Hence this model is recommended only
for the system requirements as well understood.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
13
Evolutionary Development model
 In Evolutionary development model and initial implementation develops and given to
the user of command and then do the modification in the system until a satisfied system
has been develop.
 In this model specification development and validation activities are performed
simultaneously
 There are two types of evolutionary development model. They are
Exploratory Development
Throw away prototype
Exploratory Development:-
 In this process, the development starts with the part of the system which are
understand.
 As a when customer proposing new features they are added.
 The main objectives of the method are to work with the customer to know the
requirement clearly for delivery the final system.
Outline
description
Specification
Validation
Development
Initial
Version
Intermediate
version
Final
version
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
14
Throw away prototyping:-
 In this process, developer starts with the part of the system which are poorly
understand.
 The development concentrated on part of the requirement which is no properly
represented.
 The main objectives of the method are also to understand customer requirement clearly.
Advantages:-
 The better understanding of the problem.
 More effective then waterfall model
 Customer requirements are immediately satisfied.
 Un-certainties in the system are resolved quickly.
Disadvantages:-
 The process is not visible.
 They require more cost.
 Special tools and techniques are required.
 Making changes in the software frequently will corrupt other software.
Spiral Development
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
15
 Spiral process model was proposed by Boehm in the year 1988.
 In this model the software process model activities are represents as a back tracking
from one activity from another activity.
 Each loop represented as phase of the software process.
 Each loop in the spiral split into four parts
Objective Setting
Risk assessment and reduction
Development and Validation
Planning
Objective Setting:-
 Objective related with particular project are defined.
 Constrains and the process on the product identified.
 Project risk are also identified a detailed plain is purposed and alternative strategies also
planned.
Risk assessment and Reduction:-
 A detailed analysis is carried out at the stage on the identified project risk.
 A prototype system may be developing.
Developmentand Validation:-
 After evaluating risk a development model is chosen various risk are identified and
respective development model are developed.
Planning:-
 The project is review periodically and decision has been taken weather to continue
further with the loop or not.
 If any decision is taken suitable plans are drawn.
CASE
 A case workbench is a set of tool which is used to perform activity such as design
implementation or testing.
 Different case workbench tool can be working together as a single tool.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
16
 Analysis and design workbench are used mainly for modeling the system with the help
of graphical notation particular software can be designed or analysis.
 Following figures shows various tools available in an analysis and design workbench
here various tools are integrated through a central shared repository.
 Usually analysis and design workbench is a close environment. Which means that it is
very difficult for the user to modify or add his icon tools
 The analysis and design work bench has a following eight tools
Diagram Editor:-
 This is used for creating DFD (Data flow diagram), ER (Entity Relationship) and
object hierarchy this tool receive information about all the above entity and then
saves that information in the central repository.
Design analysis checking tools:-
 By using this tool, user can identify errors of the beginning stage.
Query language facilities:-
 This tool permits the software designer to find designs and the information from the
central database.
Central
Information
Depository
Data
Dictionary
Structural
programming
tools
Report
Generation
Facility
Query
language
facilities
Import/Export
facilities
Designanalysis
& checking Form creation
tools
Code
Generation
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
17
Data Dictionary:-
 This tool maintains information about entity which is used in the system.
Report definitionand generationtool:-
 This tool take information from the central storage and documentation generated
automatically.
Form DefinitionTool:-
 These tools are used to specify screen and document format.
Import/Export Facilities:-
 Other development tool is allowed to share information with central repository.
Code Generation:-
 The tool of this work bench is creating or generates a source code automatically
with the help of design already made in the central repository.
Advantages:-
 The CASE workbench may generate source coding language such as c,c++,java
 The design workbench is used for the development business, system application.
 Database system such as Sybase or Oracle is used to implement the tool repository.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
18
UNIT II
 Project management
 Management activities
 Project planning
 Milestones and Deliverable
 Project scheduling
 Bar charts and activity networks
 Software requirement : Functional and Non functional requirements
 Domain requirements
 User requirements
 System requirements
 Structured language specification
 Software requirements document (SRS)
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
19
Project Management
 Project management is very important in developing quality software.
 If the management activity none carried out perfectly then the result will is late delivery
of software more cost of the software and poor performance of the product.
 Project management is a professional activity any software product will be
Intangible.
No standard procedure.
One Project is different from other project.
Project Planning
 A project manager must anticipate the problems.
 He must have planned with available information.
 There are five types
Quality
Validation
Configuration Management
Maintenance
Staff development
 The project plan defines about the available resources the breakdown of work schedule
for carrying out various works.
 A project plan should be regular and must be revise and change frequently
Milestone and deliverable
 Project manager need information can only provides to known the project process it
cost estimate and scheduling information about particular project are in a well
documented form.
 Whenever a project manager planning a project. He makes several mile stone and
deliverable.
 A milestone is an end point of a process activity.
 At each mile stone a formal output and a report should be presented to the
management.
 Milestone report should not be a big report.
 In milestone report illogical statement should be avoided.
 Milestone may be internal project results to check project progress.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
20
 Milestone is established by splitting basic activities into many processes.
Deliverable:-
 A deliverable is a project result. Deliver to the customer.
 At the end of major project stages deliverable is deliver to the customer.
 Deliverable are milestone, but milestones did not be deliverable.
 The following figure shows how milestone are appear in the required process.
Software Requirements
 Software system requirements are classified as
Functional requirement
Non-Functional requirement
Domain requirement
Functional requirement
 How the system is behaving in a particular situation are writer, is called function
requirement.
 Functional requirement describe various services and function of a particular system
has to provide.
 Functional requirement may be written in different ways.
Feasible
Study
Feasibility
Report
User
requirement
Prototype
development
System
requirement
Requirement
analysis
Evolution
report
Architecture
design
Design
study
Requirement
specification
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
21
 Many problems are arrives because of unclear functional requirements.
 Functional requirement documents should be complete and consistence.
 All services must be defined without any leftover.
 There is no contradictory definition.
Non functional requirements
 Non functional requirements are the requirement which is not directly related with the
services of the system they are emergent system properties.
 Non functional requirements are very critical to the system function.
 Any failure non functional requirement will decrease the performance of the system.
 Non functional requirement are not only related with software but also related with
hardware.
 Various types of Non functional requirement
Product requirement
Organization requirement
Extended requirement
 Non functional requirements are very difficult to verify.
 They are not quantifiable sometime, some metric are used to specific non functional
requirements.
 They are
Speed
Size
Reliability
Robustness
Portability
Case of use
Domain Requirement
 It is derived from the application domain.
 Domain requirement are not related with system user.
 Domain requirement may be functional requirement.
 IF the domain requirement is not satisfy then the system can’t work satisfactory.
 E.g.: Report can be product on a particular standard format. Database must be created
on some standard format.
 Domain requirement are sometime consider as requirement constrains.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
22
User Requirement
 There are three types of requirement engineering process in order to make a clear
separation between requirements system requirements are divided into three types.
User
System
Software design specification
User:-
 It is used to describe the functional and non functional requirements.
 The user without technical knowledge must understand the behavior of the system in a
clear manner.
 The user requirement must be written natural language (English) using from and
diagram.
Problem1:-
 Lack of clarity the language must be provider and clear.
 Don’t use unwanted words.
 Requirementconfusion - some type functional & Non functional requirements may not
be clearly differentiated.
 The best practice is to give both the requirement separately.
 Requirementamalgamation – When more than one requirement is combined are
represented as only one requirement the problem arrives.
Recommendation:-
 Use a standard format
 Use a language very consistently
 Be careful in using shall,should,will
 Text highlighting features such as Bold, italic must be used.
 Better to avoid using computer terminologies.
System Requirements:-
 If we represent user requirement in detail manner then these are called system
requirements.
 For software engineers system requirements are the starting point for system design.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
23
 Many model used such as object model or date flow model.
 Here also natural language used to represents system requirements, two of such natural
languages are
Structure natural language.
Design description language.
Structure natural language:-
 The main reason for using these language is understandability and easy to express our
ideas.
 In structure language very limited terminologies are used.
 The control statements are of some as programming languages.
Design descriptionlanguage:-
 It is also known as program description language.
 A program description is a language is derived from JAVA or ADA.
 A main advantage of PDL is it can be checked syntaxily and semantically.
 Requirements omission and inconsistency is easily indentified.
Disadvantage:-
 The main disadvantage of the PDL is a notation used only familiar to programmers and
the language may not sufficient for our specification.
Software Requirement Specification
 The software requirement document is the agreed statement of the system requirement
specification.
 It should be organized so that it can be used by both system customer and software
developer.
System
customer
Specifythe requirementandread then to
check that theymeettheir needs.They
specifychangesto the requirements.
Manager Use the requirementsdocumenttoplan a
bid of the system and to plan the system
requirementprocess
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
24
Project Scheduling
Introduction:-
 Split project into tasks and estimate time and resource required to complete each task.
 Organize the activities that are carried out in parallel to make optimal use of work
force.
 Minimum task dependencies to avoid delays caused by one task waiting for another to
complete.
 For any activity it should be set to no more than 8-10 weeks. If longer than this it
should be subdivided for project planning and scheduling.
 Estimate principal resources: Human effort, disk space on a server time to specialize
such as simulator, travel budget dependent on project manager’s intuition and
experience.
System
Engineers
Use the requirementtounderstand what
systemis to be developed.
Systemtest
engineers
Use the requirementtodevelop
validationtests for the system
System
maintenances
engineers
Use the requirementtohelpunderstand
the systemand the relationshipbetween
its pair
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
25
The projectschedulingprocess:-
Software Activity chart and bar charts
Requirements
Scheduling problems:-
 Estimating the difficulty of problem and hence the cost of developing a solution is hard.
 Productivity is not proportional to the number of people working on a task.
 Adding people to a late project makes it later because of communication overheads.
 The unexpected always happens allows contingency in planning.
Bar charts and activity networks
 Graphical notations used to illustrate the project schedule.
 Activity networks show task dependencies and the critical path.
 Bar charts show who is responsible for each activity and when the activity is schedule to
begin and end.
 Show project breakdown into tasks. It should not be too small. They should take about a
week or two week.
 Bar chart and activity network can be general by the project management tools.
 Activity is represented as rectangle. Milestone or deliverable is shown as rounded
corner.
 The minimum time required to finish the project can be estimated by considering the
longest path in the activity network.
Identify
Activities
Identifyactivity
dependencies
Estimate resource
for activities
Allocate
people
Create
project charts
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
26
Task durationsand dependencies:-
Task Duration(days) Dependencies
T1
T2
T3
T4
T5
T6
T7
T8
T9
T10
T11
T12
8
15
15
10
10
5
20
25
15
15
7
10
__
__
T1(M1)
__
T2,T4(M2)
T1,T2(M3)
T1(M1)
T4(M5)
T3,T6(M4)
T5,T7(M7)
T9(M6)
T11(M8)
Bar charts and activity network:-
 The longest path in the graph indicates the critical path.
 The overall schedule of project depends on the critical path.
 Activity network can provide manages about the activity dependencies which are not
obvious.
 Modify the system design to reduce the project schedule by reducing amount of time
spend waiting for activities to finish.
Gantt chart:-
 It shows the calendar day from start to finish.
 It shows some flexibility in the completion date of this activity.
 If an activity do not complete on time the critical path will not be affected until the end
of the period marked by the shaded bar.
 Allocate suitable staff to the suitable activity.
 Staff doesn’t have to be assigned to a project at all time.
 During the intervening period, they may be on a holiday, work on other project attend a
training course.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
27
Staff allocation and time chart:-
Fired
Jane
Anne
Jim
Mary
T4
T1
T2
T3
T5
T7
T6
T8
T9
T10
T11
T12
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
28
UNIT III
 System models
 Context model
 Behavioral models
 Data-flow models
 State machine models
 Data models
 Object models. Architectural design
 System organization
 Repository model
 Client –server model
 Layered model
 Modular decomposition object oriented decomposition
 Function oriented pipelining
 Control styles
 Centralized control
 Event driven system
 Reference architecture
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
29
SYSTEM MODEL
 System models are graphical representation of a problem of a problem to be solved and
the system to be develop models are more understandable they remove difference
between analyze and design.
 A system model is an abstract of system being studied .The term abstraction mean some
details can be ignored.
 Some of the type of the models are:
Data processing model
A composition model
An architectural model
Classification model
A stimulus response model
 Data processing model –shows how data is processed at different stages in the system.
 A composition model – It shows entity relation shows how entities in the system are
composed of thing entities.
 An architectural model – It shows the principle such system which makes up the system.
 Classification model – The object class, Inheritances diagram show entities have
common characteristics.
 A stimulus response model –Itstate transition shows how the system reacts to internal
and external events.
CONTEXT MODEL
 It is used to be illustrating the operational context of the system they should what lies
outside the system boundaries.
 Social and organization concerns may affect the decision on where to position system
boundaries.
 Architectural model show the system and its relationship with other system.
BEHAVIORAL MODEL
 It is used to describe the overall behavioral of a system
Type of behavioral model:-
 Data processing model:- It shows how data is processed as it moves through the system
 StateMachine model:-It shows the system response to events. These model show
different perspectives so both of them are required to describe the system’s behavior.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
30
Data - processing model
 It is used to represent how the data is processed by the system. Several notations are
used in this model to represent processing, storing and moving of data.
 The above figure shows the data flow model involved in processing order are
equipment.
 Each transformation represents a single function.
 Data flow model represent how difference system and sub system exchange
Information.
State machine model
 State machine models are used to explain behavior of a system in response to internal
or external events
 The state of the machine or system has been moving in response to various input .State
machine model are used for real time system
 The following figure illustrate the
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
31
 The above figure shows state machine model of a simple microwave oven is describe
 This model has following sequences of action;
Select the power level either half or full power.
Input the cooking time
Press the start button to cook the food for a given time
 The buzzer is used the door is open or when cooking time is complete.
 The display is an alpha numeric display different state associated with this microwave
oven.
 Waiting:- The oven is waiting for input
 Half power:- The oven power is set to 300V
 Full power:-The oven power is set to 600V
 Set time:-Cooking time is given by user and can be updated
 Disable:-For safety reasons ,oven operation ,and interior light is on
 Enable:-For safety reason,ovenoperation is enable and interior light is on
 Operation:-Interior oven light is ON; timer display count down time on the completion
of cooking a buzzer is for 5 sec.
Conclusion:-
 A state machine model has more number of state than represented, the state are
change so rapidly.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
32
DATA MODEL
 It is used to describe the logical structure of data process by the system.
 An entity +relation-attribute models set out the entities in the system, the relationship
between these entities and the entity attributes.
 Widely used in data base design can readily be implemented using relational database.
Data Dictionaries:-
 It is used to lists of all of the names used in the system models.
 Descriptions of the entities, relationship and attributes are also included.
Advantages:-
 Support name management and avoid duplication
 Store of organization knowledge linking analysis , design and implementation
 Many case work benches support data dictionaries.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
33
NAME DESCRIPTION TYPE
Article Details the published article
that may be ordered by people
using LIBSVS
Entity
Authors The names of the authors of
the articles who may be due a
share of the fee.
Attribute
Buyer The person or organization
that orders a copy of the
articles
Entity
Fee-payable-to A 1:1 relationship between
article and the copy right
agency that should be paid the
copy right fee.
Relation
Address buyer The address of the buyer .This
is used to any paper billing
that is required
Attribute
OBJECT MODELS
 The object models are developed during requirement analysis.
 In order to represent data and processing methods.
 Object models are used to represent real world entity. The real word can be car, aircraft,
animal, books etc.
 All the above are having identifiable attributes.
 Object is executable entity with the attributes and services of the object class.
 Various type of object model can be produce to relate object class to aggregate several
object classes to form.
 During analysis stage different object classes are related together object classes are
related together.
 The following figure shows an object class of UML
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
34
 The above figure represent the object class in UML and object has three section
1. The Name of the object in the top session
2. The class attributes in the middle session
3. The third section has operation relation with the object class.
Inheritance model:-
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
35
Fig b
 In object oriented modeling identification of object is an important work for this
domain knowledge is needed.
 Classes are organized into taxonomy. it is a classification scheme to represent how
an object class is related with other class throw common attribute and services
 Fig A shows A simple class heredity of the library system where in the top of the
hieratic a set of attribute a.
 These are inherited by the class published item and recorded item
 Fig B shows the library model with two classes of user
1. One type of users are permitted to borrow book
2. Another type of user can only read book; but cannot take book away
3. In inheritances, the upward arrow is used to represent the class which
inherits attributes and operation to the super class.
Object Aggregation:-
 The set of object is called as object aggregation
 Some object are made up of other objects
 In UML a diamond shape on the source of the link represent aggregation
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
36
 The above figure shows the study pack course work is compose of no. of ,assignment
,OHP slides ,Lecture note ,Video tape
 An Assignment has no. of exe and their solution.
ARCHITECTURAL DESIGN
 Many large system are developed by decomposing them into several sub system
 An Architectural Design is a method or procedure to indentify various sub system and
creating a overall frame work for sub system control and communication
 Different activities those are carried out in architectural design
1. System Structuring
2. Control Modeling
3. Modular decomposition
 The way we decide various application and system structure depend entirely on the
following non function requirement.
1. Performance:-
 It is a critical requirement so that in architectural design all critical operation are
putting inside in a small sub system
2. Security:-
 The layered Architecture is used is the most critical security components are located in
the inner layer of the sub system
3. Safety:-
 The System in structured in such a way that all safety related operation are located in
single sub system or two or more sub system
Availability:-
 The system is designed in a way that some function are repeated so that updating can be
possible
 If one sub system fails, another system will take control.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
37
Maintainability:-
 For this Non-Function requirement, the system is design using fine grain method. Fine
grain method is a method so that all operation are contain in a easily changed
component
 Data are produced separately , data are processed separately no sharing of data
structure
SystemStructuring:-
 Decomposing a system into a set interacting subsystem is called system structuring.
 This is an abstract concept block diagram are used ; each box represents a sub system
boxes within boxes represents sub system within sub system
 Arrows are used to represent movement of data and control from one sub system to
another
 There are 3 standard model used for structuring the system
Repository model
Client- server model
Abstract machine model
Repository model:-
 Repository model is used when a huge database to be organized, shared and used.
 It is highly suitable for application where data or generated by one sub system and used
by remaining subsystem
 When sharing is the point the following two fundamental ways are used
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
38
A centralized database is accessed by all subsystem , the repository model is based on
the methods
Each sub system has its own data based so that data or exchange by the sub system
Advantages:-
 No need to send or receive one sub system to another
 A subsystem which produces data need not be worried about how the data is used by
other subsystem
 Different subsystem may have different security ,recovery and backup policies
 The repository model computes all sub system to follow a same policy
 It is easy to integrate new tools.
Disadvantage:-
 Performances is affected because a common repository data model is used by all sub
system ; if there is compromised then the performances is automatically affected
 It is very difficult to integrate new sub system
 Maintainers is difficult , expensive and sometime impossible
 It is very difficult to distribute the repository database over a number of machines.
There are problems with data redundancy and inconsistency.
CLIENT SERVER MODEL
 The client server architecture model is also known s distributed system model
 In this model in which the data and processing are distributed among different
processor
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
39
Components:-
 A stand alone sever are group of server to offer services to other subsystem E.g.:- print
server, video server , file sever
 A group of client which are requesting various services affected by servers a particular
client may execute more than one program simultaneously
 A communication media (called as network ) is used by the client to access various
services
Pictorial Explanation:-
 As show in figure multiuser hypertext system is used in a library, different server is
used and variety of queries is received.
 Each client must known the name of various servers and their services
Advantages:-
 Many distributed process can be used affect
 New server can be added easily
 Sever can be upgraded without affecting other parts of the system
Disadvantages
 Each sever may have different data model so that performances is restricted
 Sub system may organize their own data in different ways. These will also affect the
performances.
 Each sever is responsible for its own data management activity
ABSTRACT MACHINE MODEL
 It is also known as layered model
 This model provides a method for how to organize various services provided by
different sub system
 In a following diagram each sub system is represented by layer
 Each layer is a machine
 One layer or abstract machine is implemented on another layer.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
40
Diagrammatic Representation:-
 A well known example for these approach is OSI reference model
 Another example is a version management system as shown in above fig
 The version management depends on managing different version
 This system uses the data base system for data storage and services
 This data base system is using the services of the next layered OS
 The layered approach is used in incremental development
Advantage:-
 This Arch can be easily changeable and potable
 Any layered can be replaced by another layer
 When there is a change in interface only the adjacent (nearest)
 Layer is affected.
 Hard ware related coding can be implement in inner layer
 Only machine dependent layer to be re implemented
Disadvantage:-
 Structuring system is very difficult
 It is very difficult to access some services provider by the inner layer
MODULAR DECOMPOSITION
 Another structural level where sub-system are decomposed into module
 There are two type of modular D
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
41
Object flow
Pipeline flow
Object flow:-
 An object –model where the system is decomposed into interacting object
Pipeline model:-
 A pipeline model where the system is decomposed into functional modules which
transform input to output
Object models:-
 Structure the system into a set of loosely coupled object with well-defined interface
 Object-oriented decomposition is concerned with identifying object classes , their
attributes and operations
 When implemented, object are created from these classes and above control model used
to coordinates object operations.
Advantages:-
 Object are loosely coupled so their implementations can be modified without
affecting other objects
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
42
 The objects may reflect real-world entities. It implementation languages are
widely used.
FUNCTION-ORIENTED PIPELINING (DATA FLOW)
 These model is used to process their input (using functional models to produce output)
 These model is also called as pipe and filter model
 Variants of this approach are very common
 When transformations are sequential, this a batch sequential model which is
extensively used in data processing systems
 Not really suitable for interactive system.
Advantage:-
 It supports transformation resume
 Easy to add new transformation
 Relatively simple to implement as either a concurrent or sequential system.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
43
UNIT IV
 Object oriented design: Object and object classes
 An object oriented design process
 Design evolution
 Rea time software
 System design
 Real time operating systems
 Monitoring and control systems
 Data acquisition systems
 User interface design: User interface design issues
 User interface design process
 User interface prototyping
 Interface evaluation
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
44
User Interface Design
User Interface:-
 System user often judges a system by interface rather than its functionality.
 A poorly designed interface can cause a user to make catastrophic errors.
 Poor user interface design is the reason why so many software systems are never used.
Graphical User Interface– (GUI):-
 Most users of business systems interact with this system through graphical interfaces
although in some cases, legacy text based interfaces are still used.
GUI Characteristic:-
Characteristic Description
Windows
Multiple windows allow different information to
be displayed simultaneously on the users screen.
Icons
Icons different types of information. On some
system, icon represent files, on other icons
represent process.
Menus
Commands are selected from a menu rather than
typed in a command language.
Pointing
A pointing device such as a mouse is used for
selecting choices from a menu or indicating
items of interest in a window.
Graphics
Graphics elements can be mixed with text on the
same display.
GUI Advantages:-
They are easy to learn and use
 Users without experience can learn to use the system quickly.
 The user may switch quickly from one task to another and can interact with several
different applications.
 Information remains visible in its own window when attention is switched.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
45
 Fast full screen interaction is possible with immediate access to anywhere on the screen.
User Interface design process:-
User Interface Design Principle:-
 UI design must take account of the needs experience and capabilities of the system
users.
 Designers should be aware of people’s physical and mental limitations (E.g.:-Limited
shorter memory) and should recognize that people make mistakes.
 UI design principles underlie interface designs although not all principles are
applicable to all designs.
User Interface Design Principles:-
User Familiarity The interface should use term and concepts which
are drawn from the experience people who will
make most use of the system.
Consistency The interface should be consistent in that,
whatever possible, comparable operations are
activated in the same way.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
46
Minimal Surprise Recoverability User should never be surprised by the behavior of
the system.
The interface should include mechanisms to allow
users to recover from errors.
User Guidance The interface should provide meaningful feedback
when errors occurs and provide context sensitive
user help facilities.
User Diversity The interface should provide appropriate
interaction facilities for different types of system
user.
Design Principles
User Familiarity:-
 The interface should be based on user oriented terms and concepts rather than
computer concepts. (E.g.:- An office system should use concepts such as letter, document
folder etc).
Consistency:-
 The system should display an appropriate level of consistency.
 Commands and menu should have the same format; command punctuation should be
similar etc.
Minimal surprise:-
 If a command operates is a known way, the user should be able to predict the operation
of comparable commands.
Recoverability:-
 The system should provide some resilience to user errors and allow the user to recover
from error.
 This might include an undo facility confirmation of destructive actions, ‘soft’ deletes etc.
User guidance:-
Some user guidance such as help systems on line manuals etc should be applied
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
47
User Diversity:-
 Interaction facilities for different types of user should be supported.
 E.g.:- Some user has seeing difficulties and so larger text should be available.
User SystemInteraction:-
 Two problems must be addressed in interactive system design.
How should information from the user be providing to the computer system?
How should information from the computer system be presented to the user?
 User interaction and information presentation may be integrated through a coherent
fame work such as a user interface metaphor.
Issues:-
 System response time
 User help facilities
 Error information handling
 Command labeling
Interaction styles:-
 Direct manipulation
 Menu selection
 Form fill-in
 Command language
 Nature language
Direct manipulation advantages:-
 Users feel in control of the computer and are less likely to be intimidated by it.
 User learning time is relatively short.
 User gets immediate feedback on their action so mistakes can be quickly detected and
corrected.
Direct manipulation problems:-
 The derivation of an appropriate information space model can be very difficult.
 Given that users have a large information space, what facilities for navigating around
that space should be provided?
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
48
 Direct manipulation interface can be complex to program and make heavy demand on
the computer system.
Control panel interface:-
Menu System:-
 User makes a selection from a list of possibilities presented to them by the system.
 The selection may be made by pointing and clicking with a mouse using cursor key or
by typing the name of the selection.
Advantage of menu systems:-
 User need not remember command name as they are always presented with a list of
valid commands.
 Types efforts is minimal
 User error is trapped by the interface.
 Context dependent help can be provided the user’s context is indicated by the current
menus selections.
Problems with menu systems:-
 Actions which involve logical conjunction or disjunction are awkward to represent.
 Menu systems are best suited to presenting a small number of choices. If there are many
choices some menu structuring facility must be used.
 Experienced user find menu slower than command language.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
49
Command interface:-
 User types commands to give instructions to the system E.g. - UNIX.
 May be implemented using cheap terminals.
 Easy to process using compiler techniques
 Command of arbitrary complexity can be created by command combination.
 Concise interface requiring minimal typing can be created.
Problems with command interface:-
 User has to learn and remember a command language. Command interface are
therefore unsuitable for occasional users.
 Users make error in command. An error detection and recovery system is required.
 System interaction is through a keyboard so typing ability is required.
Command language:-
 Often preferred by experienced users because they allow for faster interaction with the
system.
 Not suitable for casual or inexperienced user.
 May be provided as an alternative to menu commands. In some cases a command
language interface and a menu based interface are supported at the same time.
Nature language interface:-
 The user type a command in a natural language. Generally the vocabulary is limited
and these systems are confirmed to specific application domains (E.g. timetable
enquires).
 Natural language processing technology is now good enough to make this interface
effective for casual users but experienced users find that they require too much typing.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
50
Multiple user interfaces:-
InformationPresentation:-
 Information presentation is concerned with presenting system information to system
users.
 The information may be presented directly or may be transformed in some way for
presentation.
 The model view controller approach is a way of supporting multiple presentations of
data.
InformationPresentation:-
Graphical user
interface
Command language
interface
Operating
System
GUImanager Command language
interpreter
Informationto be
display
Presentation
software
-------
-----
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
51
Model view controller:-
View modification message user input
Model queries model edits
And updates
Informationpresentation:-
Static information:-
 Initialized at the beginning of a session it does not change during the session.
 May be either numeric or textual.
Dynamic information:-
 Changes during a session and the changes must be communicated to the system user.
 May be either numeric or textual.
Alternative informationpresentation:-
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
January February March April May June
Column1
Column2
Viewstate
View
methods
Controllerstate
Controllermethods
Model state
Model method
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
52
Analogue vs. digital presentation:-
Digital presentation:-
 Compact takes up little screen space.
 Precise values can be communicated.
Analogue presentation:-
 Easier to get an ‘ata glance’ impression of a value.
 Possible to slow relative values.
 Easier to see exceptional data values.
Dynamic informationdisplay:-
Displaying relative values:-
Textual highlighting:-
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
53
Data Visualization:-
 Concerned with techniques for displaying large amount of information.
 Visualization can be reveal relationship between entities and trends in the data.
 Possible data visualization is
Weather information collected from a no of source
The state of a telephone network as a linked set of nodes
Color displays:-
 Color adds an extra dimension to an interface and can help the user understand
complex information structure.
 Can be used to highlight exceptional events.
Color use guidelines:-
 Don’t use too many colors
 Use color coding to support use tasks
 Allow users to control colors coding.
 Design for monochrome then adds color.
 Use color coding consistently.
 Avoid color pairings which clash.
 Use color change to show status change.
User support:-
 User guidance covers all system facilities to support user including on line help, error,
messages, manuals etc.
 The user guidance system should be integrated with the user. Interface to help users
when they need information about the system or when they make some kind of error.
!
The filename youhave chosenhas beenused,please choose another name
Ch.16 User Interface Design
OK Cancel
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
54
 The help and message system should if possible be integrated.
Help and message system:-
Error messages:-
 Error message design in critically important poor error message can mean that a user
rejects rather than accepts a system.
 Message should be polito, conise, consistent and constructor.
 The background and experience of users should be the determining factor in message
design.
Systemand user oriented error messages:-
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
55
Help system design:-
 Help? Means”help I want information”.
 Help? Means “Help I’m in trouble”.
 Both of these requirements have to be taken account in help system design.
 Different facilities in the help system may be required.
Help information:-
 Should not simply be an online manual.
 Screens or window don’t map well onto paper pages.
 The dynamic characteristic of the display can improve information presentation.
 People are not so good at reading screen as they are text.
Help system use:-
 Multiple entry points should be provided so that the user can get into the help system
from different places.
 Some indication of where the user a positioned in the help system is valuable.
Entry pointsto a help system:-
Top level
entry
Entry from
error
message
system
Entry from
application
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
56
User documentation:-
 As well as online information paper documentation should be supplied with a system.
 Documentation should be designed for a range of users from inexperienced to
experience.
 As well as manuals other easy to use documentation such as quite reference card may
be provided.
User document type:-
Documenttypes:-
Functional description:-
 Grief description of what the system can do.
Introductory manual:-
 Presents an informal introduction to the system.
Systemreference manual:-
 Describes all system facilities in detail.
Systeminstallation manuals:-
 Describes how to install the system.
Systemadministratorsmanual:-
 Describe how to manage the system when it is in use.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
57
User interface evaluation
 Some evaluation of a user interface design should be carried out to assess its suitability.
 Full scale evaluation is every expensive and impractical for most systems.
Usability attributes:-
Attributes Description
Learn ability How long does it take a new user to become
productive with the system?
Speed of operation How well does the system response match the
users work practice?
Robustness How tolerant is the system of user error?
Recoverability How good is the system at recovering from user
errors?
Adaptability How closely is the system tied to a single model
of works?
Real time software
Introduction:-
 To explain the concept of real time system and why these systems are usually
implemented as concurrent processes.
 To describe a design process for real time system.
 To explain the role of a real time operating system.
Real time system:-
 Systems which monitor and control their environment.
 Inevitably associated with hardware devices.
Sensors: - Collect date from the system environment.
Actuators: - Change the systemsenvironment. Time is critical. Real time system
must respond within specified times.
Real time software types:-
 They classified into two types.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
58
Soft real time system
Hard real time system
Soft real time system:-
 It is a system whose operation is degraded if result is not reduced to the specified timing
requirements.
Hard real time system:-
 It is a system whose operation is incorrect if results are not produce according to the
timing specification.
Stimulus / response system:-
 Given a stimulus the system must produce a response within a specified time.
Periodic stimulus:-
 Stimuli which occur at predictable time intervals
 E.g. A temperature sensor may be polled 10 times per second.
A periodic stimulus:-
 Stimuli which occur at unpredictable times.
 E.g. A system power failure may trigger an interrupt which must be processed by the
system.
A real time system model:-
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
59
Sensor actuator processes:-
System element
Sensor control:-
 Control information from sensors.
 May buffer information collected in response to a sensor stimulus.
Data processor:-
 Carries out processing of collected information and computes the system response.
Actuator control processes:-
 Generates control signals for the actuators.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
60
Real time programming:-
 Hard real time systems may have to program I assembly language to ensure that
deadlines are met.
 Languages such as allow efficient programs to be written but do not have construct
management.
System design
 Design both the hardware and the software associated with system. Partition functions
to either hardware or software.
 Design decisions should be made on the basis on non functional system requirement.
 Hardware delivers better performances but potentially longer development and less
scope for change.
Real time design process:-
 Identify the stimuli to be processed and the required response to these stimuli.
 For each stimulus and response identify the timing constraints.
 The stimulus and response processing into concurrent process.
 A process may be associated with each class of stimulus and response.
Real time system modeling:-
 The effect of a stimulus in a real time system may trigger a transition from one state to
another.
 Finate state machine can be used for modeling real time system.
 FSM model lack structure even simple system can have a complex model.
 UML includes notations for defining state machine models.
Petrol pumb state model:-
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
61
Os components:-
Real time clock:- Provides information for process scheduling.
Interrupt handler:- Manages a periodic requests for service.
Scheduler:- Choose the next process to be run.
Resource manager:- Allocates memory and processor resource.
Dispatcher:- Start process execution.
Non-stop systemcomponents:-
Configuration manager:-
 Responsible for the dynamic reconfiguration of the system software and hardware.
 Hardwar models may be replaced and software upgraded without stopping the system.
Fault manager:-
 Responsible for detecting software and hardware fault and taking appropriate action.
(E.g Back up dick) to ensure that the system continiuos in operation.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
62
Real time operating system components:-
Process priority:-
 The processing of some type of stimuli must sometimes take priority.
 Interrupt level priority. Highest priority which is allocated to processes requiring a very
fast response.
clock level priority:- Allocated to periodic processes.
Process Management:-
 Concerned with managing the set of concurrent process.
 Periodic processes are executed at pre-specified time intervals.
 The real time clock to determine when to execute a process taking into account.
 Process period time between execution.
 Process deadline the time by which processing must be complete.
Scheduling strategies:-
Scheduler
Choose process
for execution
Resource manager
Allocate memory
and processor
Dispatcher
Start executionon
an available
process
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
63
Non-preemptive scheduling:-
 Once a process has been scheduled for execution, it runs to completion or until it is
blocked for some reason.
Pre-emptive scheduling:-
 The execution of an execution processes may be stopped if a higher priority process
requires service.
Scheduling algorithms:-
 Round robin
 Rate monotonic
 Shortest deadline first
Monitoring and control system:-
 mportant class of real time system.
 Continuously check sensors and take actions depending on sensor values.
 Monitoring systems examine sensors and reports their results.
 Control system take sensor values and control hardware actuators.
Generic architecture:-
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
64
Burglar alarm system:-
 A system required to monitor sensors on doors and windows to detect the presence of
intruders in a building.
 When a sensor indicates a break in the system switches on light around the area and
calls police automatically.
 The system should include provision for operation without a mains power supply.
Burglar alarm system:-
Sensors:-
 Movement detectors, window sensors, door sensors
 50 window sensors, 30 door sensors and 200 movement.
 Voltage drop sensor.
Actions:-
 When an intruder in detected, police are called automatically.
 Light are switched on in rooms with active sensors.
 An audible alarm is switched on;
 The system switch automatically to backup power when a voltage drop is detected.
B1
Control panel
process
Testing
Process
Monitoring
process
Control
process
P(A1)
S2
S3
P(s1)
P(s2)
P(s3)
P(A4)
P(A3)
P(A2)
A1
A2
A3
A4
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
65
Stimuli to be processed:-
Power failure:-
 Generated a periodically by a circuit moin to when received the system must switch to
backup power within 50ms.
Intruder alarm:-
 Stimulus generated by system sensors. Response is to call the police, switch on building
lights and the audible alarm.
Timing requirement:-
Stimulus response Timing requirement
Power fail interrupt The switch to backup power must be
completed within a deadline of 50ms
Door alarm Each door alarm should be polled twice per
second.
Window alarm Each window alarm should be polled twice
per second.
Movement detector Each movement detector should be polled
twice per second.
Audible alarm The audible alarm should be switched on
within ½ second of an alarm being raised by a
sensor.
Light switch The lights should be switched on within ½
Lights switch Second of an alarm being raised by a sensor.
Communications The calls to the police should be started within
2 second of an alarm being raised by a sensor.
Voice synthesizer A synthesized message should be available
within 4 seconds of an alarm being raised by a
sensor.
Burglar alarm systemprocesses:-
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
66
Control system:-
 A burglar alarm system is primarily a monitoring system. It collects data from sensors
but no real time actuator control.
 Control systems are similar but in response to sensor values, the system sends.
 An example of a monitoring and control system is a system that monitors temperature
and switched heaters on and off.
A temperature control system:-
500Hz
500Hz Sensor values
500Hz
Switchcommand
Room no
Data acquisition system:-
 Collect date from sensors for sub request processing and analysis.
 Data collection processes and processing processes may have different periods and
deadlines.
Sensor Process
Heater control process Furnace control process
Theirmost at
process
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
67
 Circular or ring buffer are a mechanism for smoothing speed difference.
Data acquisition architecture:-
Sensor identifier Sensor identifier
& value & value
Sensor identifier Sensor identifier
& value & value
Reactor data collection:-
 A system collects data from a set of sensors monitoring the neutron flux a nuclear
reactor.
 Flux data is placed in a ring buffer for later processing.
 The ring buffer is itself implemented as a concurrent process so that the collection and
processing processes may be synchronized.
Reactor flux monitoring:-
A ring buffer:-
S1
S2
S3
Sensor
process
Process
data
Sensor data
buffer
Display
S1
S1
S1
Sensor
process
Sensor data
buffer
Process
data
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
68
Mutual exclusion:-
 Producer processes collect data and add it to the buffer. Consumer processes take data
from the buffer and make elements available.
 Producer and consumer processes must be mutually excluded from accessing the same
element.
 The buffer must stop producer processes adding information to a full buffer and
consumer processes trying to take information from an empty buffer.
Clean room software development:-
 It is a software development technique which is based on static verification.
 The objective of these approach to software development is zero defect software.
 The clean room approach software development is based on the notation that defect in
software should be avoided rather then detected and repair.
Characterstics:-
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
69
 Formal specification using a state transition model.
 Incremental development where the customer priorities increment
 Structure programming limited control and abstraction constructs are used in the
program.
 Static verification using rigorous inspection.
Process team:
Specificationteam:-
 Responsible for developing and maintaining the system specification
Developmentteam:-
 Responsible for developing and verifying the software. The software is not executed or
event compiled during this process.
Certificationteam:-
 Responsible for develop set of statistical test.
Quality management:-
 It is a software to develop without faults and conform to its specification
 Quality managers are responsible for three kind of activity
Quality assurance
Quality control
Quality planning
Quality assurance:-
 They must establish organizational procedures and standards which leads to high
quality software.
Quality control:-
 They must ensure that procedure and standards are followed by the software
development team.
Quality planning:-
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
70
 They must select appropriate procedure and standards are followed by the software
development team.
Process quality assurance:-
 Quality of the development process directly affects the quality of the delivered product.
 Process quality is particularly important in software development.
 The reason for this is that it is difficult to measure software attributes such as
maintainability without using the software for a long period.
 Quality manager must ensure that the quality of the software process that is used this
involves
1) Defining process standard such as how review should be conducted when
review should be help on and show on.
2) Monitoring the development process to ensure that the standards are bein
followed
3) Reporting the standard product management & to the buyer of the software.
Product quality:-
 We can quality the product depending upon following.
Design quality metric
Program quality metric
Documentation quality metric
Design quality metric:-
 There are number of possible design attributes which are important but we know that
the key attribute is maintainability.
Cohesion:- How closely are the part of the component related?
Coupling:- How independent is a component.
Understandability:- How easy is to understand the function of a component.
Programquality metrics:-
 We can quality the program using the following metric.
Length of code
Cyclometric complexity
Length of identifiers
Depth of conditional nesting
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
71
Length of code:-
 This is a measure of the sixe of program
 Generally the larger the size of the code of a program components.
Cyclometric complexity:-
 This is a measure of a control complexity of a program
 This control complexity is related to program understand ability
Length of identifier:-
 This is a measure of the average length of different identifiers in a program
Depth of conditional nesting:-
 This is a measure of the depth of nested if statement in a program
 Nested if statements are hand to understand and potentially error prone
Documentation quality metric:-
 The quality of the documentation associated with a software product is as important as
the quality of the software itself.
 The best known of these metric running for index which is the measure of the
readability of a passage of text
Software metric:-
 Any type of measurement which relates to software system, process are related
documentation
 Line of code in program the for index, no.of person base require to develop a
component.
 Allow the software and the software process to be qualified.
Predictor & control metrics
Control metric:-
 This metric used by the management to control the software process.
Predictor metric:-
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
72
 Measurement of product attribute that can be used to predict an associated product
quality
Internal and external attributes:-
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
73
Verification and Validation
Verification:
 "Are we building the product right”.
 The software should conform to its specification.
Validation:
 "Are we building the right product”.
 The software should do what the user really requires.
 These two terms are very confusing for most people, who use them interchangeability.
 The following table highlights the difference between verification and validation.
Verification Validation
Verification address the concern: “Are you
building it right?”
Validation address the concern: “Are you
building the right thing?”
Ensure that the software system meets all the
functionality
Ensure that the functionalities meets the
intended behavior
Verification takes place first and includes the
checking for documentation, code etc
Validation occurs after verification mainly
involves the checking of the over all product.
Done by developers Done by testers
It has static activities, as it. Includes collecting
reviews, walk thoughts, and inspection to verify
a software.
It has dynamic activities, as it includes executing
the software against the requirement.
It is an objective process and no subjective
decision should be needed to verify a software.
It is subjective process and involves subjective
decisions on how well a software works.
The V & V process
Is a whole life-cycle process - V & V must be applied at each stage in the software process.
Has two principal objectives
 The discovery of defects in a system;
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
74
 The assessment of whether or not the system is useful and useable in an
operational situation.
V& V goals
 Verification and validation should establish confidence that the software is fit for
purpose.
 This does NOT mean completely free of defects.
 Rather, it must be good enough for its intended use and the type of use will determine
the degree of confidence that is needed.
V & V confidence
 Depends on system’s purpose, user expectations and marketing environment
Software function
The level of confidence depends on how critical the software is to an
organisation.
User expectations
Users may have low expectations of certain kinds of software.
Marketing environment
Getting a product to market early may be more important than finding defects
in the program.
Static and dynamic verification
 Software inspection Concerned with analysis of the static system representation to
discover problems (static verification) May be supplement by tool-based document
and code analysis .
 Software testing. Concerned with exercising and observing product behaviour
(dynamic verification). The system is executed with test data and its operational
behaviour is observed
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
75
Software inspections
 These involve people examining the source representation with the aim of
discovering anomalies and defects.
 Inspections not require execution of a system so may be used before implementation.
 They may be applied to any representation of the system (requirements,
design,configuration data, test data, etc.).
 They have been shown to be an effective technique for discovering program errors.
Inspection success
 Many different defects may be discovered in a single inspection. In testing, one defect
,may mask another so several executions are required.
 The reuse domain and programming knowledge so reviewers are likely to have seen
the types of error that commonly arise.
Inspections and testing
 Inspections and testing are complementary and not opposing verification techniques.
 Both should be used during the V & V process.
 Inspections can check conformance with a specification but not conformance with the
customer’s real requirements.
 Inspections cannot check non-functional characteristics such as performance,
usability, etc.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
76
Program inspections
 Formalised approach to document reviews Intended explicitly for defect detection
(not correction).
 Defects may be logical errors, anomalies in the code that might indicate an erroneous
condition (e.g. an uninitialised variable) or non-compliance with standards.
The inspection process
Clean room software development:-
 It is a software development technique which is based on static verification.
 The objective of these approach to software development is zero defect software.
 The clean room approach software development is based on the notation that defect in
software should be avoided rather then detected and repair.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
77
Characterstics:-
 Formal specification using a state transition model.
 Incremental development where the customer priorities increment
 Structure programming limited control and abstraction constructs are used in the
program.
 Static verification using rigorous inspection.
Process team:
Specification team:-
 Responsible for developing and maintaining the system specification
Development team:-
 Responsible for developing and verifying the software. The software is not executed or
event compiled during this process.
Certification team:-
 Responsible for develop set of statistical test.
Software testing
 Testing can be described as a process used for revealing defects in software, the
software has a specified degree of quality with respect to selected attributes, An input
output model of program testing.
The main focus of such testing is to test:-
System functions and performances
System reliability and recoverability
System installation(installation test)
System behavior in the special conditions
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
78
Types of testing:-
System testing
Integration
Release
Performance
Component
Interface
System Testing
 The system test is a series of test conducted to fully the computer based system
 various types of system test are
Recovery testing
Security testing
Stress testing
Performance testing
Recovery testing:-
 It is intended to check the system’s ability to recover from failures.
 In this type of testing is forced to fail and then it is verified.
 For automated recovery then re-initialization checkpoint mechanisms, data recovery
and restart are verified.
Security testing:-
 Security testing verifies that system protection mechanism prevent improper
penetration or data alteration.
 It also verifies that protection mechanisms built into the system prevent instruction such
as unauthorized internal or external access or will full damage.
Stress testing:-
 Determines breakpoint of a system to establish maximum service level
 In stress testing the system is executed in a manner that demands resource in abnormal
quantity frequency or volume.
 A variation of stress testing is a technique called sensitivity testing.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
79
Performance testing
 It evaluates the runtime performance of the software especially real time software.
 It utilization such as CPU load, through put, response time, memory usage, can be
measured.
 Beta testing is useful for performance testing.
Integration testing
 It is a combined parts of an application to determine if they function correctly.
 Integration testing can be done in two ways.
Bottom up integration
Top down integration
Bottom up integration:-
 This testing begins with unit testing followed by tests of progressively higher level
combination of units called modules or builds.
Top down integration:-
 The highest level modules are tested first and progressively, lower level modules are
tested there after.
Release testing
 Release testing is the process of testing a particular release of a system that is intended
for use outside of the development team.
 The primary goal of the release testing process is to continue the customer o the system
that it is good enough for use.
Release testing is a form of system testing
Important difference:-
 A separate team that has not been involved in the system development should be
responsible for release testing.
 System testing by the development team should focus on discovery bugs in the system
 The objective of release testing is to check that the system meets its requirements and is
good enough for external use.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
80
Performance testing
 It is mostly used to identify any bottle necks or performance issues rather than finding
bugs in a software.
 There are different causes that contribute in lowering the performance of a software.
Network delay
Client side processing
Database transaction processing
Load balancing between servers
Data rendering
 Performance testing is considered as one of the important testing type in terms of the
following aspects.
Speed (Response time, data rendering and accessing_
Capacity
Stability
Scalability
 Performance testing can be either qualitative or quantitative can be divided into
different sub types such as load testing & stress testing.
Load testing:-
 It is a process of testing the behavior of software by applying maximum load in-terms
of software accessing and manipulating large input data.
 It can be done at both normal and peak load conditions. This type of testing identifies
load testing is performed with the help of automated tools such as load runner.
 Most of the time, load testing is performed with the help of automated tools such as load
runner, app loader, IBM rational.
Stress testing:-
 It includes testing the behavior of software under abnormal conditions.
 E.g:- It may include taking away some resources or applying a load beyond the actual
load limit.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
81
 The software by applying the load to the system and taking over the resources used by
the software to identify the breaking point.
Component testing
 It is a method where testing of each component in an application is done separately.
 Component testing is also known as module and program testing.
 Component testing is done by the tester.
 In isolation from rest of the system depending on the development life cycle mode.
 In such case the missing software is replaced by stubs and drivers.
Stubs:-
 Stubs are dummy modules that are always distinguish as “called programs” that is
handle in integration testing Top down approach it used when sub programs are under
construction.
 Stubs are considered as the dummy modules that always simulate the low level modules.
Drivers:-
 Drivers are also known as dummy modules, which are always distinguished as “called
program”.
 It handled in Bottomup integration testing, it is only when main programs are under
construction.
 Driver are considered as the dummy modules that always simulate the high level model.
 Component testing is done by the testers. Before we start with the integration testing
always preferable to do the component testing.
Interface testing
 It is performed to evaluate system or components pass data and control correctly to one
another
 These modules are working properly and errors are handled properly.
Interface checklist:-
 Verify that communication between the systems are done correctly.
 Verify if all supported hardware and software has been tested..
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
82
 Verify if all linked documents be supported open on all platforms.
 Verify the security requirements or encryption.
 Check if a solution can handle network failures between website and application server.
Black box testing:-
 The technique of testing without having any knowledge of the interior working of the
application is called black box testing.
White box testing:-
 It is the detailed investigation of internal logic and structure of the code.
 White box testing is also called glass testing or open box testing.
 In order to perform white box testing on an application, a tester needs to known the
internal working of the code.
COCOMO Model
Introduction:-
 Boehm postulated that any software development project can be classified into one of
the following three categories based on the development
Organic
Semi detached
Embedded
 In order to classify a product into the identified categories, Boehm not only considered
the characteristics of the product but also those of the development team and
development environment.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
83
 System programs interact directly with the hardware and typically involve meeting
timing constraints and concurrent processing.
Organic:-
 A development project can be considered of organic type, if the project deals with
developing a well understood application program the size of the development team is
reasonably small and the team members are experienced in developing similar types of
project.
Semidetached:-
 A development project can be considered of semidetached types, if the development
consists of a mixture of experienced and inexperienced staff.
 Team members may have limited experience on related systems but may be unfamiliar
with some aspects of the system being developed.
Embedded:-
 A development project is considered to be of embedded type, if the software being
developed is strongly coupled to complex hardware or if the stringent regulations on
the operational procedures exist.
COCOMO:-
 Constructive cost estimation model was proposed by Boehm [1981].
 According to Boehm software cost estimation should be done through three stages.
Basic COCOMO
Intermediate COCOMO
Complete COCOMO
Basic COCOMO Model:-
 The basic COCOMO model gives an approximate estimate of the project parameters.
 The basic COCOMO estimation model is given by the following expressions.
Effort=a1*(𝑲𝑳𝑶𝑪) 𝟐
𝒂
PM
𝑻 𝒅𝒆𝒗= b1*(𝑬𝒇𝒇𝒐𝒓𝒕) 𝟐
𝒃
Moths
 KLOC is the estimated size of the software product expressed in Kilo lines of code.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
84
 a1 a2 b1 b2 are constants for each category of software products.
𝑇𝑑𝑒𝑣 is the estimated time to develop the software expressed in months
 Effort is the total effort required to develop the software product expressed in person
months(PMs).
Estimation of development effort:-
 For the three classes of software products the formulas for estimating the effort based
on the code size are shown below.
Organic:- Effort=2.4 (𝐾𝐿𝑂𝐶)1.05
PM
Semidetached:- Effort=3.0 (𝐾𝐿𝑂𝐶)1.12
PM
Embedded:- Effort=3.6 (𝐾𝐿𝑂𝐶)1.10
PM
Estimation of development time:-
 For the three classes of software product, the formulas for estimating the development
time based on the effort are given below.
Organic:- 𝑇𝑑𝑒𝑣 =2.5(𝑒𝑓𝑓𝑜𝑟𝑡)0.38
Months
Semidetached:- 𝑇𝑑𝑒𝑣 =2.5(𝑒𝑓𝑓𝑜𝑟𝑡)0.35
Months
Embedded:- 𝑇𝑑𝑒𝑣 =2.5(𝑒𝑓𝑓𝑜𝑟𝑡)0.32
Months
Example:-
 Organic type software product=32000 lines of source code.
 Average salary of software engineers= Rs 15000 Determine the effort required to
develop the software product and the nominal development time.
Solution:-
 From the basic COCOMO estimation formula for organic software
 Effort=2.4*(32)1.05
=91PM
 Nominal development time= 2.5*(91)0.38
=14
 Cost required to develop the product = 14 * 15000 Rs=2,10,000
Intermediate COCOMO Model:-
 The basic COCOMO Model assumes that effort and development time are functions of
the product size alone.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
85
 A host of other project parameters besides the product size affect the efforts required to
develop the product as well as the development time.
 In general, the cost drivers can be classified as being attributes of the following items
Product
Computer
Personnel
Development environment
Product:-
 The characteristics of the product that are considered include inherent complexity of
the product, reliability requirements of the product etc.
Computer:-
 Characteristics of the computer that are considered include the execution speed
required storage pace required etc.
Personnel:-
 The attributes of development personnel that are considered include the experience
level of personnel programming capability, analysis capability etc.
Development environment:-
 Development environment attributes capture the development facilities available to the
developers.
 CASE tools used for software development.
Complete COCOMO model:-
 A major short coming of both the basic and intermediate COCOMO models is that they
consider a software product as a single homogeneous entity.
 However, most large system are made up several smaller subsystems.
E.g:-
 If some subsystem may be considered as organic type, some semidetached and some
embedded.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
86
 The complete COCOMO model considers these differences in characteristics of the
subsystems and estimates the effort and development.
 The cost of each subsystems is estimated separately. This approach reduces the margin
of error in the final estimate.
 A distributed management information system product of an organization having
offices at several places across the country can have the following sub components
Database part
Graphical user interface part
Communication part
 The communication part can be considered as embedded software.
 The database part can be semi-detached software.
 The GUI part can be organic software.
 The costs for these three components can be estimated separately and summed up to
give the overall cost of the system.
Quality management:-
 It is a software to develop without faults and conform to its specification
 Quality managers are responsible for three kind of activity
Quality assurance
Quality control
Quality planning
Quality assurance:-
 They must establish organizational procedures and standards which leads to high
quality software.
Quality control:-
 They must ensure that procedure and standards are followed by the software
development team.
Quality planning:-
 They must select appropriate procedure and standards are followed by the software
development team.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
87
Process quality assurance:-
 Quality of the development process directly affects the quality of the delivered product.
 Process quality is particularly important in software development.
 The reason for this is that it is difficult to measure software attributes such as
maintainability without using the software for a long period.
 Quality manager must ensure that the quality of the software process that is used this
involves
4) Defining process standard such as how review should be conducted when
review should be help on and show on.
5) Monitoring the development process to ensure that the standards are bein
followed
6) Reporting the standard product management & to the buyer of the software.
Product quality:-
 We can quality the product depending upon following.
Design quality metric
Program quality metric
Documentation quality metric
Design quality metric:-
 There are number of possible design attributes which are important but we know that
the key attribute is maintainability.
Cohesion:- How closely are the part of the component related?
Coupling:- How independent is a component.
Understandability:- How easy is to understand the function of a component.
Program quality metrics:-
 We can quality the program using the following metric.
Length of code
Cyclometric complexity
Length of identifiers
Depth of conditional nesting
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
88
Length of code:-
 This is a measure of the sixe of program
 Generally the larger the size of the code of a program components.
Cyclometric complexity:-
 This is a measure of a control complexity of a program
 This control complexity is related to program understand ability
Length of identifier:-
 This is a measure of the average length of different identifiers in a program
Depth of conditional nesting:-
 This is a measure of the depth of nested if statement in a program
 Nested if statements are hand to understand and potentially error prone
Documentation quality metric:-
 The quality of the documentation associated with a software product is as important as
the quality of the software itself.
 The best known of these metric running for index which is the measure of the
readability of a passage of text
Software metric:-
 Any type of measurement which relates to software system, process are related
documentation
 Line of code in program the for index, no.of person base require to develop a
component.
 Allow the software and the software process to be qualified.
Predictor & control metrics
Control metric:-
 This metric used by the management to control the software process.
SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen
15UCSC52 Assistant Professor,
Department of CS (SF).
89
Predictor metric:-
 Measurement of product attribute that can be used to predict an associated product
quality
Internal and external attributes:-

More Related Content

What's hot

Lecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringLecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringAchmad Solichin
 
Evolutionary process models se.ppt
Evolutionary process models se.pptEvolutionary process models se.ppt
Evolutionary process models se.pptbhadjaashvini1
 
Process Improvement in Software Engineering SE25
Process Improvement in Software Engineering SE25Process Improvement in Software Engineering SE25
Process Improvement in Software Engineering SE25koolkampus
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineeringRupesh Vaishnav
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSuresh Koujalagi
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Fadhil Ismail
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressmanRohitGoyal183
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
 
Pressman ch-22-process-and-project-metrics
Pressman ch-22-process-and-project-metricsPressman ch-22-process-and-project-metrics
Pressman ch-22-process-and-project-metricsSeema Kamble
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process ModelsAhsan Rahim
 
Software Engineering concept
Software Engineering concept Software Engineering concept
Software Engineering concept Atamjitsingh92
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Al-Mamun Sarkar
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssuranceSaqib Raza
 
Coding and testing in Software Engineering
Coding and testing in Software EngineeringCoding and testing in Software Engineering
Coding and testing in Software EngineeringAbhay Vijay
 
Software Testing Strategies
Software Testing StrategiesSoftware Testing Strategies
Software Testing StrategiesNayyabMirTahir
 
Software life cycle comparison
Software life cycle comparisonSoftware life cycle comparison
Software life cycle comparisonSuvek Shakya
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLESwarnima Tiwari
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5Mohammad Faizan
 

What's hot (20)

Lecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringLecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software Engineering
 
Evolutionary process models se.ppt
Evolutionary process models se.pptEvolutionary process models se.ppt
Evolutionary process models se.ppt
 
Software testing
Software testing Software testing
Software testing
 
Process Improvement in Software Engineering SE25
Process Improvement in Software Engineering SE25Process Improvement in Software Engineering SE25
Process Improvement in Software Engineering SE25
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life Cycle
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Pressman ch-22-process-and-project-metrics
Pressman ch-22-process-and-project-metricsPressman ch-22-process-and-project-metrics
Pressman ch-22-process-and-project-metrics
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
 
Software Engineering concept
Software Engineering concept Software Engineering concept
Software Engineering concept
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Coding and testing in Software Engineering
Coding and testing in Software EngineeringCoding and testing in Software Engineering
Coding and testing in Software Engineering
 
Software Testing Strategies
Software Testing StrategiesSoftware Testing Strategies
Software Testing Strategies
 
Software life cycle comparison
Software life cycle comparisonSoftware life cycle comparison
Software life cycle comparison
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 

Similar to Software engineering

Software Process and Requirement
Software Process and RequirementSoftware Process and Requirement
Software Process and Requirementcricket2ime
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering Huda Alameen
 
software engineering
software engineeringsoftware engineering
software engineeringsubhakirthi
 
Software Engineering
Software EngineeringSoftware Engineering
Software EngineeringMohamed Essam
 
2.-IT-266_APDET-Module-2-of-3.pptx
2.-IT-266_APDET-Module-2-of-3.pptx2.-IT-266_APDET-Module-2-of-3.pptx
2.-IT-266_APDET-Module-2-of-3.pptxKENNEDYDONATO1
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxethiouniverse
 
System developement methods
System developement methodsSystem developement methods
System developement methodssachinsreekumar
 
GSPM (General Software Process Model)
GSPM (General Software Process Model)GSPM (General Software Process Model)
GSPM (General Software Process Model)muhammad naeem
 
Sofware engineering
Sofware engineeringSofware engineering
Sofware engineeringnstjelja
 
SWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software EngineeringSWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software Engineeringghayour abbas
 
SWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overviewSWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overviewghayour abbas
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptHumzaWaris1
 
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC Neetu Marwah
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareengPINKU29
 

Similar to Software engineering (20)

Software Process and Requirement
Software Process and RequirementSoftware Process and Requirement
Software Process and Requirement
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering
 
Se lec 3
Se lec 3Se lec 3
Se lec 3
 
software engineering
software engineeringsoftware engineering
software engineering
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Chapter 2.pptx
Chapter 2.pptxChapter 2.pptx
Chapter 2.pptx
 
SDLC
SDLCSDLC
SDLC
 
Software Engineering
Software  EngineeringSoftware  Engineering
Software Engineering
 
2.-IT-266_APDET-Module-2-of-3.pptx
2.-IT-266_APDET-Module-2-of-3.pptx2.-IT-266_APDET-Module-2-of-3.pptx
2.-IT-266_APDET-Module-2-of-3.pptx
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
 
SE-Unit I.pptx
SE-Unit I.pptxSE-Unit I.pptx
SE-Unit I.pptx
 
System developement methods
System developement methodsSystem developement methods
System developement methods
 
Software process
Software processSoftware process
Software process
 
GSPM (General Software Process Model)
GSPM (General Software Process Model)GSPM (General Software Process Model)
GSPM (General Software Process Model)
 
Sofware engineering
Sofware engineeringSofware engineering
Sofware engineering
 
SWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software EngineeringSWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software Engineering
 
SWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overviewSWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overview
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.ppt
 
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareeng
 

Recently uploaded

Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...jaredbarbolino94
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfMahmoud M. Sallam
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxAvyJaneVismanos
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentInMediaRes1
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
CELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxCELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxJiesonDelaCerna
 

Recently uploaded (20)

Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdf
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptx
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media Component
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
CELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxCELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptx
 

Software engineering

  • 1. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 1 V SEMESTER SOFTWARE ENGINEERING UNIT I  Introduction  What is software  What is software engineering  Software process  Software process model  Software engineering methods  Emergent System properties  System engineering  System requirements  System design  System modeling  sub system development  System integration  System evolution  System decommissioning  System procurement  Software processes: Software process models: 1. The waterfall model 2. Evolutionary development 3. Spiral development  CASE
  • 2. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 2 What is software?  Software is a set of program, associated document and the data that is needed to make this program operate correctly. Software Product:-  It is a software system deliver to the customer with the documentation which describes how to install and use the system.  Software product can be classified as follow Generic Customized or Bespoke Generic product:-  There are stand alone systems which are produced by development organization sold on the open market to any customer who is able to buy them.  E.g.: Operating system, MS Office Customized or Bespoke:-  These are system which is developed for a particular customer.  The software is developed specially for that customer by some contractor.  E.g.: Railway Reservation, Banking Software Product Attributes  The following are some of the attributes Maintainability Dependability Efficiency Usability Maintainability:-  Software System should be developed in such a way that it may evolve to meet changing the need of customer.  This is an important attributes because in today’s world changes are unavoidable.
  • 3. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 3 Dependability:-  One software system is always depending on some other software system Hence, A failure in one software system should not make any physical or economical damage to other system.  It means that if one system is not working properly another system will not be affected. Efficiency:-  System resources such as CPU time and memory space should not be wasted.  The system should fake less time for processing and must give response in a fast manner. Usability:-  The software should have an appropriate user interface and adequate documentation. Software Process:-  Software is set of activities and related results to produce a software product.  All activities in the software process are carried out by the software engineers.  There are four fundamental activities Software Specification Software Development Software validation Software Evolution Software Specification:-  The functionality of a software and limitation on the operation of the software specified.  That is list out what the software will do? And What the Software will not do? Software development:-  The software development is started by writing programs in a way that software must meet the particular specification. Software Validation:-  The software must be tested or validated to ensure that our software product is producing what the customer wants.
  • 4. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 4 Software Evolution:-  The software must be developed such the way that as went a customer requirement our software adapt with a change. Emerged system properties  The emerged system properties are the system attributes.  The value of these emergent properties can’t in advance.  They can be only measure after integrating all sub systems.  They are two types of emergent system properties are: Functional properties Non Functional property Functional properties:-  The functional properties will appear when all the part of the system to work together. Non Functional properties:-  Non functional properties to relate to the behavior of the system it needs operational environment.  These are very important and critical for any computer based system.  If non functional system properties are not defined clearly then the system will be UN useable.  Some of the non functional emergent system properties are Reliability Performance Safety Security  As for reliability is constrain three factor influencing the reliability of a system Hardware Reliability Software Reliability Operator Reliability Hardware Reliability:-  Hardware reliability means how often the hardware will fail and how much time takes to repair to this hardware.
  • 5. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 5 Software Reliability:-  Software Reliability means how a software component produces an incorrect result, whether the software is continuously working even after producing an incorrect result. Operator Reliability:-  The operator of a system will make an error. So that how reliable the operator is? System and their Environment  No system is working independently all system are dependent and existing in an environment.  Certainly environment does affect the functioning and performance of an every system.  The factor these are affecting system & design are Process changes Job changes Organization changes Process changes:-  It means the changes in organization make any significant change.  Weather training is occur; the user are resisting the system the new system will make job losses. Job changes:-  The system will make the change the user.  De-skill or more skill our system will make a working style of manager are not Organizationchanges:-  Our system will change political power of the organization. System engineering process Introduction:-  It is the inter-disciplinary activity.  The software to be developed must be flexible.  So that many unexpected problems to be solved only by the software engineer.
  • 6. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 6  Much software is failed because software engineers are not able to enhance the software capability without increase the hardware cost.  Different activity involved in system engineering process is System Requirement Definition System Design Sub system Development System Integration System Installation System operation System Evolution System Decommissioning System Requirement Definition  In consultation with system customer and end users.  The system engineer has to design the system requirement.  There are three types of Abstract function requirement System properties Characteristic system must not exhibit Abstract functionrequirement:-  The basic function of the system are define at an abstract level (Not in a detail level) Systemproperties:-  Non functional emergent property is described here. Characteristic system must not exhibit:-  System designer must clearly specify that what the system should not do. System Design  It means assign system functionality two different component.  Different activity involve in this process are Partition Requirement Identify Subsystem
  • 7. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 7 Assign Requirement to Subsystem Specify Subsystem functionality Define Subsystem Interface Partition Subsystem:-  Different subsystem to meet the requirement are identify individually or collectively.  Sub system identification has been affected by the organization process or outside factor. Assign Requirement to Subsystem:-  It is not an easy job. Because there is no clear match between the requirement and subsystem.  E.g.: If we purchase COTS then requirement most is modified. Specify Subsystemfunctionality:-  At the state, relationship between subsystem are identify function of each subsystem are specified. Define SubsystemInterface:-  Link between one sub systems is called interface.  During development, when interface are clearly defined then parallel development can be possible. Subsystem Development  During this state identify subsystem design are implemented.  If a subsystem is a software system, then subsystem are developed from scratch (new). Some of the sub system may be COTS.  Different subsystem is usually developed in parallel, when system needs more hardware engineering than manufacturing is very expensive. System Integration  In system integration indecently developed subsystem are combine together to make complete system Integration can be performed by two approaches. Big Bang Approach
  • 8. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 8 Incremental Approach Big Bang Approach:-  In big bang approach all the sub system are integrated at the same time. Incremental Approach:-  In incremental approach sub system are integrated one at a time. System Installation  During system installation the entire system is put it into the environment that is at the customer side.  During these stage the following may be appear  The environment in which the system is to be installed is not the same as before.  Potential user of the system may oppose the new system.  Our new system may have two co-exists with an existing system. If organization a satisfied with the new system, then only old system will be stopped.  Physical installation problem may also be appearing. System Operation  System operation means it is put it into operation. During this state training session are organized for users.  At this state many problem and errors may arrives.  We may come to know errors and omission.  Many problems are of the following type Data transfer User Interface Operator error rate problem System Evolution  The large and complex system has a very long life time.  During the use, they have to subject to many errors and new requirement.  The organization which gives such system we change it. External factors may also affect the system.  Hence, the system evolution is an important costly process.
  • 9. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 9  The amount and time for keeping software useful are called evolution. System Decommissioning  Taking the system out of service is called system decommissioning some tie it is an easy work.  But mostly it will damage the environment. A system engineer must anticipate with the problem related with decommissioning at the time design the software. System procurement  In large organization the system may be purchased as a whole or part of a system is purchased or integrated or design and developed completely in their own.  The option for the above three is called system Procurement.  A system procurement process is completely a division making process.  The system procurement process as following activities Issuing request for proposal Choosing a supplier Making contract for the system Adopt Requirement Choose System Issue request for bids Choose supplier Survey market for existing system Issue request to tenders Sole of tender Negotiate contract Contract for developer
  • 10. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 10  It shows the procurement process for existing system and newly designed system.  COTS components usually not match exactly when a system by the contract for own the main.  After designing the contractor discussion must be had with them about changes in the requirement in the future.  It shows usually there are only one main contractor and mainly sub contractors.  Every sub contractor design and develop part of the system.  After every sub contractor completing his own system. The principle contractor integrated all the sub system and then delivers to the customer. Software process Model Introduction:-  It is an abstract representation of software process. A model provides partial information about the process.  A software model provides frame work of the process.  Software process model can be used to explain different activities involved in software development.  There are many model uses for development. Some process models are System Customer Principle contract Sub contract 1 Sub contract 1 Sub contract 1
  • 11. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 11 Waterfall Evolutionary development model Formal system development model Reused based development model Waterfall Model  The first published model of the software development process was waterfall model.  Figure shows such as model there is a cascading from one Phase to another Phase this model is also known as software development life cycle model.  The main stages of the models are Requirements definition:-  At this stage system services, constrains and goals are clearly defined in consultation with systems users.  System specification is defined in detail manner. Requirement Definition Systemand software design Implementing &unittesting Integrating & Systemtesting Operationand maintenance
  • 12. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 12 System& Software Design:-  In this process, the system requirement is partition in accordance with hardware and software.  Fundamental software systems are identified.  Overall system architecture is established. Implementation & Unit Testing:-  In this stage only the developer started writing program this is called codification.  Programs are developed as module unique and every module is tested with test date.  Every module is verified that customer requirements are satisfied or not. Integration & SystemTesting:-  Individual units are integrated and tested as a complete system.  Testing is performed and enters system to ensure that software requirement is satisfied. Operation& Maintenance:-  This is a stage in water fall model take longest life cycle time.  During these stage the system is install and let it into practical use it the customer side.  Maintenance means when system gives problem during operations, it must be corrected.  During this stage new errors may be discovered and new requirement may be incorporated new enhanced may be proposed. Disadvantages of waterfall model:-  In each stage some document are prepared and approved.  The waterfall model is inflexible.  The developer must be committed in each state. Hence this model is recommended only for the system requirements as well understood.
  • 13. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 13 Evolutionary Development model  In Evolutionary development model and initial implementation develops and given to the user of command and then do the modification in the system until a satisfied system has been develop.  In this model specification development and validation activities are performed simultaneously  There are two types of evolutionary development model. They are Exploratory Development Throw away prototype Exploratory Development:-  In this process, the development starts with the part of the system which are understand.  As a when customer proposing new features they are added.  The main objectives of the method are to work with the customer to know the requirement clearly for delivery the final system. Outline description Specification Validation Development Initial Version Intermediate version Final version
  • 14. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 14 Throw away prototyping:-  In this process, developer starts with the part of the system which are poorly understand.  The development concentrated on part of the requirement which is no properly represented.  The main objectives of the method are also to understand customer requirement clearly. Advantages:-  The better understanding of the problem.  More effective then waterfall model  Customer requirements are immediately satisfied.  Un-certainties in the system are resolved quickly. Disadvantages:-  The process is not visible.  They require more cost.  Special tools and techniques are required.  Making changes in the software frequently will corrupt other software. Spiral Development
  • 15. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 15  Spiral process model was proposed by Boehm in the year 1988.  In this model the software process model activities are represents as a back tracking from one activity from another activity.  Each loop represented as phase of the software process.  Each loop in the spiral split into four parts Objective Setting Risk assessment and reduction Development and Validation Planning Objective Setting:-  Objective related with particular project are defined.  Constrains and the process on the product identified.  Project risk are also identified a detailed plain is purposed and alternative strategies also planned. Risk assessment and Reduction:-  A detailed analysis is carried out at the stage on the identified project risk.  A prototype system may be developing. Developmentand Validation:-  After evaluating risk a development model is chosen various risk are identified and respective development model are developed. Planning:-  The project is review periodically and decision has been taken weather to continue further with the loop or not.  If any decision is taken suitable plans are drawn. CASE  A case workbench is a set of tool which is used to perform activity such as design implementation or testing.  Different case workbench tool can be working together as a single tool.
  • 16. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 16  Analysis and design workbench are used mainly for modeling the system with the help of graphical notation particular software can be designed or analysis.  Following figures shows various tools available in an analysis and design workbench here various tools are integrated through a central shared repository.  Usually analysis and design workbench is a close environment. Which means that it is very difficult for the user to modify or add his icon tools  The analysis and design work bench has a following eight tools Diagram Editor:-  This is used for creating DFD (Data flow diagram), ER (Entity Relationship) and object hierarchy this tool receive information about all the above entity and then saves that information in the central repository. Design analysis checking tools:-  By using this tool, user can identify errors of the beginning stage. Query language facilities:-  This tool permits the software designer to find designs and the information from the central database. Central Information Depository Data Dictionary Structural programming tools Report Generation Facility Query language facilities Import/Export facilities Designanalysis & checking Form creation tools Code Generation
  • 17. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 17 Data Dictionary:-  This tool maintains information about entity which is used in the system. Report definitionand generationtool:-  This tool take information from the central storage and documentation generated automatically. Form DefinitionTool:-  These tools are used to specify screen and document format. Import/Export Facilities:-  Other development tool is allowed to share information with central repository. Code Generation:-  The tool of this work bench is creating or generates a source code automatically with the help of design already made in the central repository. Advantages:-  The CASE workbench may generate source coding language such as c,c++,java  The design workbench is used for the development business, system application.  Database system such as Sybase or Oracle is used to implement the tool repository.
  • 18. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 18 UNIT II  Project management  Management activities  Project planning  Milestones and Deliverable  Project scheduling  Bar charts and activity networks  Software requirement : Functional and Non functional requirements  Domain requirements  User requirements  System requirements  Structured language specification  Software requirements document (SRS)
  • 19. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 19 Project Management  Project management is very important in developing quality software.  If the management activity none carried out perfectly then the result will is late delivery of software more cost of the software and poor performance of the product.  Project management is a professional activity any software product will be Intangible. No standard procedure. One Project is different from other project. Project Planning  A project manager must anticipate the problems.  He must have planned with available information.  There are five types Quality Validation Configuration Management Maintenance Staff development  The project plan defines about the available resources the breakdown of work schedule for carrying out various works.  A project plan should be regular and must be revise and change frequently Milestone and deliverable  Project manager need information can only provides to known the project process it cost estimate and scheduling information about particular project are in a well documented form.  Whenever a project manager planning a project. He makes several mile stone and deliverable.  A milestone is an end point of a process activity.  At each mile stone a formal output and a report should be presented to the management.  Milestone report should not be a big report.  In milestone report illogical statement should be avoided.  Milestone may be internal project results to check project progress.
  • 20. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 20  Milestone is established by splitting basic activities into many processes. Deliverable:-  A deliverable is a project result. Deliver to the customer.  At the end of major project stages deliverable is deliver to the customer.  Deliverable are milestone, but milestones did not be deliverable.  The following figure shows how milestone are appear in the required process. Software Requirements  Software system requirements are classified as Functional requirement Non-Functional requirement Domain requirement Functional requirement  How the system is behaving in a particular situation are writer, is called function requirement.  Functional requirement describe various services and function of a particular system has to provide.  Functional requirement may be written in different ways. Feasible Study Feasibility Report User requirement Prototype development System requirement Requirement analysis Evolution report Architecture design Design study Requirement specification
  • 21. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 21  Many problems are arrives because of unclear functional requirements.  Functional requirement documents should be complete and consistence.  All services must be defined without any leftover.  There is no contradictory definition. Non functional requirements  Non functional requirements are the requirement which is not directly related with the services of the system they are emergent system properties.  Non functional requirements are very critical to the system function.  Any failure non functional requirement will decrease the performance of the system.  Non functional requirement are not only related with software but also related with hardware.  Various types of Non functional requirement Product requirement Organization requirement Extended requirement  Non functional requirements are very difficult to verify.  They are not quantifiable sometime, some metric are used to specific non functional requirements.  They are Speed Size Reliability Robustness Portability Case of use Domain Requirement  It is derived from the application domain.  Domain requirement are not related with system user.  Domain requirement may be functional requirement.  IF the domain requirement is not satisfy then the system can’t work satisfactory.  E.g.: Report can be product on a particular standard format. Database must be created on some standard format.  Domain requirement are sometime consider as requirement constrains.
  • 22. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 22 User Requirement  There are three types of requirement engineering process in order to make a clear separation between requirements system requirements are divided into three types. User System Software design specification User:-  It is used to describe the functional and non functional requirements.  The user without technical knowledge must understand the behavior of the system in a clear manner.  The user requirement must be written natural language (English) using from and diagram. Problem1:-  Lack of clarity the language must be provider and clear.  Don’t use unwanted words.  Requirementconfusion - some type functional & Non functional requirements may not be clearly differentiated.  The best practice is to give both the requirement separately.  Requirementamalgamation – When more than one requirement is combined are represented as only one requirement the problem arrives. Recommendation:-  Use a standard format  Use a language very consistently  Be careful in using shall,should,will  Text highlighting features such as Bold, italic must be used.  Better to avoid using computer terminologies. System Requirements:-  If we represent user requirement in detail manner then these are called system requirements.  For software engineers system requirements are the starting point for system design.
  • 23. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 23  Many model used such as object model or date flow model.  Here also natural language used to represents system requirements, two of such natural languages are Structure natural language. Design description language. Structure natural language:-  The main reason for using these language is understandability and easy to express our ideas.  In structure language very limited terminologies are used.  The control statements are of some as programming languages. Design descriptionlanguage:-  It is also known as program description language.  A program description is a language is derived from JAVA or ADA.  A main advantage of PDL is it can be checked syntaxily and semantically.  Requirements omission and inconsistency is easily indentified. Disadvantage:-  The main disadvantage of the PDL is a notation used only familiar to programmers and the language may not sufficient for our specification. Software Requirement Specification  The software requirement document is the agreed statement of the system requirement specification.  It should be organized so that it can be used by both system customer and software developer. System customer Specifythe requirementandread then to check that theymeettheir needs.They specifychangesto the requirements. Manager Use the requirementsdocumenttoplan a bid of the system and to plan the system requirementprocess
  • 24. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 24 Project Scheduling Introduction:-  Split project into tasks and estimate time and resource required to complete each task.  Organize the activities that are carried out in parallel to make optimal use of work force.  Minimum task dependencies to avoid delays caused by one task waiting for another to complete.  For any activity it should be set to no more than 8-10 weeks. If longer than this it should be subdivided for project planning and scheduling.  Estimate principal resources: Human effort, disk space on a server time to specialize such as simulator, travel budget dependent on project manager’s intuition and experience. System Engineers Use the requirementtounderstand what systemis to be developed. Systemtest engineers Use the requirementtodevelop validationtests for the system System maintenances engineers Use the requirementtohelpunderstand the systemand the relationshipbetween its pair
  • 25. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 25 The projectschedulingprocess:- Software Activity chart and bar charts Requirements Scheduling problems:-  Estimating the difficulty of problem and hence the cost of developing a solution is hard.  Productivity is not proportional to the number of people working on a task.  Adding people to a late project makes it later because of communication overheads.  The unexpected always happens allows contingency in planning. Bar charts and activity networks  Graphical notations used to illustrate the project schedule.  Activity networks show task dependencies and the critical path.  Bar charts show who is responsible for each activity and when the activity is schedule to begin and end.  Show project breakdown into tasks. It should not be too small. They should take about a week or two week.  Bar chart and activity network can be general by the project management tools.  Activity is represented as rectangle. Milestone or deliverable is shown as rounded corner.  The minimum time required to finish the project can be estimated by considering the longest path in the activity network. Identify Activities Identifyactivity dependencies Estimate resource for activities Allocate people Create project charts
  • 26. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 26 Task durationsand dependencies:- Task Duration(days) Dependencies T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 8 15 15 10 10 5 20 25 15 15 7 10 __ __ T1(M1) __ T2,T4(M2) T1,T2(M3) T1(M1) T4(M5) T3,T6(M4) T5,T7(M7) T9(M6) T11(M8) Bar charts and activity network:-  The longest path in the graph indicates the critical path.  The overall schedule of project depends on the critical path.  Activity network can provide manages about the activity dependencies which are not obvious.  Modify the system design to reduce the project schedule by reducing amount of time spend waiting for activities to finish. Gantt chart:-  It shows the calendar day from start to finish.  It shows some flexibility in the completion date of this activity.  If an activity do not complete on time the critical path will not be affected until the end of the period marked by the shaded bar.  Allocate suitable staff to the suitable activity.  Staff doesn’t have to be assigned to a project at all time.  During the intervening period, they may be on a holiday, work on other project attend a training course.
  • 27. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 27 Staff allocation and time chart:- Fired Jane Anne Jim Mary T4 T1 T2 T3 T5 T7 T6 T8 T9 T10 T11 T12
  • 28. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 28 UNIT III  System models  Context model  Behavioral models  Data-flow models  State machine models  Data models  Object models. Architectural design  System organization  Repository model  Client –server model  Layered model  Modular decomposition object oriented decomposition  Function oriented pipelining  Control styles  Centralized control  Event driven system  Reference architecture
  • 29. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 29 SYSTEM MODEL  System models are graphical representation of a problem of a problem to be solved and the system to be develop models are more understandable they remove difference between analyze and design.  A system model is an abstract of system being studied .The term abstraction mean some details can be ignored.  Some of the type of the models are: Data processing model A composition model An architectural model Classification model A stimulus response model  Data processing model –shows how data is processed at different stages in the system.  A composition model – It shows entity relation shows how entities in the system are composed of thing entities.  An architectural model – It shows the principle such system which makes up the system.  Classification model – The object class, Inheritances diagram show entities have common characteristics.  A stimulus response model –Itstate transition shows how the system reacts to internal and external events. CONTEXT MODEL  It is used to be illustrating the operational context of the system they should what lies outside the system boundaries.  Social and organization concerns may affect the decision on where to position system boundaries.  Architectural model show the system and its relationship with other system. BEHAVIORAL MODEL  It is used to describe the overall behavioral of a system Type of behavioral model:-  Data processing model:- It shows how data is processed as it moves through the system  StateMachine model:-It shows the system response to events. These model show different perspectives so both of them are required to describe the system’s behavior.
  • 30. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 30 Data - processing model  It is used to represent how the data is processed by the system. Several notations are used in this model to represent processing, storing and moving of data.  The above figure shows the data flow model involved in processing order are equipment.  Each transformation represents a single function.  Data flow model represent how difference system and sub system exchange Information. State machine model  State machine models are used to explain behavior of a system in response to internal or external events  The state of the machine or system has been moving in response to various input .State machine model are used for real time system  The following figure illustrate the
  • 31. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 31  The above figure shows state machine model of a simple microwave oven is describe  This model has following sequences of action; Select the power level either half or full power. Input the cooking time Press the start button to cook the food for a given time  The buzzer is used the door is open or when cooking time is complete.  The display is an alpha numeric display different state associated with this microwave oven.  Waiting:- The oven is waiting for input  Half power:- The oven power is set to 300V  Full power:-The oven power is set to 600V  Set time:-Cooking time is given by user and can be updated  Disable:-For safety reasons ,oven operation ,and interior light is on  Enable:-For safety reason,ovenoperation is enable and interior light is on  Operation:-Interior oven light is ON; timer display count down time on the completion of cooking a buzzer is for 5 sec. Conclusion:-  A state machine model has more number of state than represented, the state are change so rapidly.
  • 32. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 32 DATA MODEL  It is used to describe the logical structure of data process by the system.  An entity +relation-attribute models set out the entities in the system, the relationship between these entities and the entity attributes.  Widely used in data base design can readily be implemented using relational database. Data Dictionaries:-  It is used to lists of all of the names used in the system models.  Descriptions of the entities, relationship and attributes are also included. Advantages:-  Support name management and avoid duplication  Store of organization knowledge linking analysis , design and implementation  Many case work benches support data dictionaries.
  • 33. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 33 NAME DESCRIPTION TYPE Article Details the published article that may be ordered by people using LIBSVS Entity Authors The names of the authors of the articles who may be due a share of the fee. Attribute Buyer The person or organization that orders a copy of the articles Entity Fee-payable-to A 1:1 relationship between article and the copy right agency that should be paid the copy right fee. Relation Address buyer The address of the buyer .This is used to any paper billing that is required Attribute OBJECT MODELS  The object models are developed during requirement analysis.  In order to represent data and processing methods.  Object models are used to represent real world entity. The real word can be car, aircraft, animal, books etc.  All the above are having identifiable attributes.  Object is executable entity with the attributes and services of the object class.  Various type of object model can be produce to relate object class to aggregate several object classes to form.  During analysis stage different object classes are related together object classes are related together.  The following figure shows an object class of UML
  • 34. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 34  The above figure represent the object class in UML and object has three section 1. The Name of the object in the top session 2. The class attributes in the middle session 3. The third section has operation relation with the object class. Inheritance model:-
  • 35. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 35 Fig b  In object oriented modeling identification of object is an important work for this domain knowledge is needed.  Classes are organized into taxonomy. it is a classification scheme to represent how an object class is related with other class throw common attribute and services  Fig A shows A simple class heredity of the library system where in the top of the hieratic a set of attribute a.  These are inherited by the class published item and recorded item  Fig B shows the library model with two classes of user 1. One type of users are permitted to borrow book 2. Another type of user can only read book; but cannot take book away 3. In inheritances, the upward arrow is used to represent the class which inherits attributes and operation to the super class. Object Aggregation:-  The set of object is called as object aggregation  Some object are made up of other objects  In UML a diamond shape on the source of the link represent aggregation
  • 36. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 36  The above figure shows the study pack course work is compose of no. of ,assignment ,OHP slides ,Lecture note ,Video tape  An Assignment has no. of exe and their solution. ARCHITECTURAL DESIGN  Many large system are developed by decomposing them into several sub system  An Architectural Design is a method or procedure to indentify various sub system and creating a overall frame work for sub system control and communication  Different activities those are carried out in architectural design 1. System Structuring 2. Control Modeling 3. Modular decomposition  The way we decide various application and system structure depend entirely on the following non function requirement. 1. Performance:-  It is a critical requirement so that in architectural design all critical operation are putting inside in a small sub system 2. Security:-  The layered Architecture is used is the most critical security components are located in the inner layer of the sub system 3. Safety:-  The System in structured in such a way that all safety related operation are located in single sub system or two or more sub system Availability:-  The system is designed in a way that some function are repeated so that updating can be possible  If one sub system fails, another system will take control.
  • 37. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 37 Maintainability:-  For this Non-Function requirement, the system is design using fine grain method. Fine grain method is a method so that all operation are contain in a easily changed component  Data are produced separately , data are processed separately no sharing of data structure SystemStructuring:-  Decomposing a system into a set interacting subsystem is called system structuring.  This is an abstract concept block diagram are used ; each box represents a sub system boxes within boxes represents sub system within sub system  Arrows are used to represent movement of data and control from one sub system to another  There are 3 standard model used for structuring the system Repository model Client- server model Abstract machine model Repository model:-  Repository model is used when a huge database to be organized, shared and used.  It is highly suitable for application where data or generated by one sub system and used by remaining subsystem  When sharing is the point the following two fundamental ways are used
  • 38. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 38 A centralized database is accessed by all subsystem , the repository model is based on the methods Each sub system has its own data based so that data or exchange by the sub system Advantages:-  No need to send or receive one sub system to another  A subsystem which produces data need not be worried about how the data is used by other subsystem  Different subsystem may have different security ,recovery and backup policies  The repository model computes all sub system to follow a same policy  It is easy to integrate new tools. Disadvantage:-  Performances is affected because a common repository data model is used by all sub system ; if there is compromised then the performances is automatically affected  It is very difficult to integrate new sub system  Maintainers is difficult , expensive and sometime impossible  It is very difficult to distribute the repository database over a number of machines. There are problems with data redundancy and inconsistency. CLIENT SERVER MODEL  The client server architecture model is also known s distributed system model  In this model in which the data and processing are distributed among different processor
  • 39. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 39 Components:-  A stand alone sever are group of server to offer services to other subsystem E.g.:- print server, video server , file sever  A group of client which are requesting various services affected by servers a particular client may execute more than one program simultaneously  A communication media (called as network ) is used by the client to access various services Pictorial Explanation:-  As show in figure multiuser hypertext system is used in a library, different server is used and variety of queries is received.  Each client must known the name of various servers and their services Advantages:-  Many distributed process can be used affect  New server can be added easily  Sever can be upgraded without affecting other parts of the system Disadvantages  Each sever may have different data model so that performances is restricted  Sub system may organize their own data in different ways. These will also affect the performances.  Each sever is responsible for its own data management activity ABSTRACT MACHINE MODEL  It is also known as layered model  This model provides a method for how to organize various services provided by different sub system  In a following diagram each sub system is represented by layer  Each layer is a machine  One layer or abstract machine is implemented on another layer.
  • 40. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 40 Diagrammatic Representation:-  A well known example for these approach is OSI reference model  Another example is a version management system as shown in above fig  The version management depends on managing different version  This system uses the data base system for data storage and services  This data base system is using the services of the next layered OS  The layered approach is used in incremental development Advantage:-  This Arch can be easily changeable and potable  Any layered can be replaced by another layer  When there is a change in interface only the adjacent (nearest)  Layer is affected.  Hard ware related coding can be implement in inner layer  Only machine dependent layer to be re implemented Disadvantage:-  Structuring system is very difficult  It is very difficult to access some services provider by the inner layer MODULAR DECOMPOSITION  Another structural level where sub-system are decomposed into module  There are two type of modular D
  • 41. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 41 Object flow Pipeline flow Object flow:-  An object –model where the system is decomposed into interacting object Pipeline model:-  A pipeline model where the system is decomposed into functional modules which transform input to output Object models:-  Structure the system into a set of loosely coupled object with well-defined interface  Object-oriented decomposition is concerned with identifying object classes , their attributes and operations  When implemented, object are created from these classes and above control model used to coordinates object operations. Advantages:-  Object are loosely coupled so their implementations can be modified without affecting other objects
  • 42. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 42  The objects may reflect real-world entities. It implementation languages are widely used. FUNCTION-ORIENTED PIPELINING (DATA FLOW)  These model is used to process their input (using functional models to produce output)  These model is also called as pipe and filter model  Variants of this approach are very common  When transformations are sequential, this a batch sequential model which is extensively used in data processing systems  Not really suitable for interactive system. Advantage:-  It supports transformation resume  Easy to add new transformation  Relatively simple to implement as either a concurrent or sequential system.
  • 43. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 43 UNIT IV  Object oriented design: Object and object classes  An object oriented design process  Design evolution  Rea time software  System design  Real time operating systems  Monitoring and control systems  Data acquisition systems  User interface design: User interface design issues  User interface design process  User interface prototyping  Interface evaluation
  • 44. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 44 User Interface Design User Interface:-  System user often judges a system by interface rather than its functionality.  A poorly designed interface can cause a user to make catastrophic errors.  Poor user interface design is the reason why so many software systems are never used. Graphical User Interface– (GUI):-  Most users of business systems interact with this system through graphical interfaces although in some cases, legacy text based interfaces are still used. GUI Characteristic:- Characteristic Description Windows Multiple windows allow different information to be displayed simultaneously on the users screen. Icons Icons different types of information. On some system, icon represent files, on other icons represent process. Menus Commands are selected from a menu rather than typed in a command language. Pointing A pointing device such as a mouse is used for selecting choices from a menu or indicating items of interest in a window. Graphics Graphics elements can be mixed with text on the same display. GUI Advantages:- They are easy to learn and use  Users without experience can learn to use the system quickly.  The user may switch quickly from one task to another and can interact with several different applications.  Information remains visible in its own window when attention is switched.
  • 45. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 45  Fast full screen interaction is possible with immediate access to anywhere on the screen. User Interface design process:- User Interface Design Principle:-  UI design must take account of the needs experience and capabilities of the system users.  Designers should be aware of people’s physical and mental limitations (E.g.:-Limited shorter memory) and should recognize that people make mistakes.  UI design principles underlie interface designs although not all principles are applicable to all designs. User Interface Design Principles:- User Familiarity The interface should use term and concepts which are drawn from the experience people who will make most use of the system. Consistency The interface should be consistent in that, whatever possible, comparable operations are activated in the same way.
  • 46. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 46 Minimal Surprise Recoverability User should never be surprised by the behavior of the system. The interface should include mechanisms to allow users to recover from errors. User Guidance The interface should provide meaningful feedback when errors occurs and provide context sensitive user help facilities. User Diversity The interface should provide appropriate interaction facilities for different types of system user. Design Principles User Familiarity:-  The interface should be based on user oriented terms and concepts rather than computer concepts. (E.g.:- An office system should use concepts such as letter, document folder etc). Consistency:-  The system should display an appropriate level of consistency.  Commands and menu should have the same format; command punctuation should be similar etc. Minimal surprise:-  If a command operates is a known way, the user should be able to predict the operation of comparable commands. Recoverability:-  The system should provide some resilience to user errors and allow the user to recover from error.  This might include an undo facility confirmation of destructive actions, ‘soft’ deletes etc. User guidance:- Some user guidance such as help systems on line manuals etc should be applied
  • 47. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 47 User Diversity:-  Interaction facilities for different types of user should be supported.  E.g.:- Some user has seeing difficulties and so larger text should be available. User SystemInteraction:-  Two problems must be addressed in interactive system design. How should information from the user be providing to the computer system? How should information from the computer system be presented to the user?  User interaction and information presentation may be integrated through a coherent fame work such as a user interface metaphor. Issues:-  System response time  User help facilities  Error information handling  Command labeling Interaction styles:-  Direct manipulation  Menu selection  Form fill-in  Command language  Nature language Direct manipulation advantages:-  Users feel in control of the computer and are less likely to be intimidated by it.  User learning time is relatively short.  User gets immediate feedback on their action so mistakes can be quickly detected and corrected. Direct manipulation problems:-  The derivation of an appropriate information space model can be very difficult.  Given that users have a large information space, what facilities for navigating around that space should be provided?
  • 48. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 48  Direct manipulation interface can be complex to program and make heavy demand on the computer system. Control panel interface:- Menu System:-  User makes a selection from a list of possibilities presented to them by the system.  The selection may be made by pointing and clicking with a mouse using cursor key or by typing the name of the selection. Advantage of menu systems:-  User need not remember command name as they are always presented with a list of valid commands.  Types efforts is minimal  User error is trapped by the interface.  Context dependent help can be provided the user’s context is indicated by the current menus selections. Problems with menu systems:-  Actions which involve logical conjunction or disjunction are awkward to represent.  Menu systems are best suited to presenting a small number of choices. If there are many choices some menu structuring facility must be used.  Experienced user find menu slower than command language.
  • 49. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 49 Command interface:-  User types commands to give instructions to the system E.g. - UNIX.  May be implemented using cheap terminals.  Easy to process using compiler techniques  Command of arbitrary complexity can be created by command combination.  Concise interface requiring minimal typing can be created. Problems with command interface:-  User has to learn and remember a command language. Command interface are therefore unsuitable for occasional users.  Users make error in command. An error detection and recovery system is required.  System interaction is through a keyboard so typing ability is required. Command language:-  Often preferred by experienced users because they allow for faster interaction with the system.  Not suitable for casual or inexperienced user.  May be provided as an alternative to menu commands. In some cases a command language interface and a menu based interface are supported at the same time. Nature language interface:-  The user type a command in a natural language. Generally the vocabulary is limited and these systems are confirmed to specific application domains (E.g. timetable enquires).  Natural language processing technology is now good enough to make this interface effective for casual users but experienced users find that they require too much typing.
  • 50. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 50 Multiple user interfaces:- InformationPresentation:-  Information presentation is concerned with presenting system information to system users.  The information may be presented directly or may be transformed in some way for presentation.  The model view controller approach is a way of supporting multiple presentations of data. InformationPresentation:- Graphical user interface Command language interface Operating System GUImanager Command language interpreter Informationto be display Presentation software ------- -----
  • 51. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 51 Model view controller:- View modification message user input Model queries model edits And updates Informationpresentation:- Static information:-  Initialized at the beginning of a session it does not change during the session.  May be either numeric or textual. Dynamic information:-  Changes during a session and the changes must be communicated to the system user.  May be either numeric or textual. Alternative informationpresentation:- 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 January February March April May June Column1 Column2 Viewstate View methods Controllerstate Controllermethods Model state Model method
  • 52. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 52 Analogue vs. digital presentation:- Digital presentation:-  Compact takes up little screen space.  Precise values can be communicated. Analogue presentation:-  Easier to get an ‘ata glance’ impression of a value.  Possible to slow relative values.  Easier to see exceptional data values. Dynamic informationdisplay:- Displaying relative values:- Textual highlighting:-
  • 53. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 53 Data Visualization:-  Concerned with techniques for displaying large amount of information.  Visualization can be reveal relationship between entities and trends in the data.  Possible data visualization is Weather information collected from a no of source The state of a telephone network as a linked set of nodes Color displays:-  Color adds an extra dimension to an interface and can help the user understand complex information structure.  Can be used to highlight exceptional events. Color use guidelines:-  Don’t use too many colors  Use color coding to support use tasks  Allow users to control colors coding.  Design for monochrome then adds color.  Use color coding consistently.  Avoid color pairings which clash.  Use color change to show status change. User support:-  User guidance covers all system facilities to support user including on line help, error, messages, manuals etc.  The user guidance system should be integrated with the user. Interface to help users when they need information about the system or when they make some kind of error. ! The filename youhave chosenhas beenused,please choose another name Ch.16 User Interface Design OK Cancel
  • 54. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 54  The help and message system should if possible be integrated. Help and message system:- Error messages:-  Error message design in critically important poor error message can mean that a user rejects rather than accepts a system.  Message should be polito, conise, consistent and constructor.  The background and experience of users should be the determining factor in message design. Systemand user oriented error messages:-
  • 55. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 55 Help system design:-  Help? Means”help I want information”.  Help? Means “Help I’m in trouble”.  Both of these requirements have to be taken account in help system design.  Different facilities in the help system may be required. Help information:-  Should not simply be an online manual.  Screens or window don’t map well onto paper pages.  The dynamic characteristic of the display can improve information presentation.  People are not so good at reading screen as they are text. Help system use:-  Multiple entry points should be provided so that the user can get into the help system from different places.  Some indication of where the user a positioned in the help system is valuable. Entry pointsto a help system:- Top level entry Entry from error message system Entry from application
  • 56. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 56 User documentation:-  As well as online information paper documentation should be supplied with a system.  Documentation should be designed for a range of users from inexperienced to experience.  As well as manuals other easy to use documentation such as quite reference card may be provided. User document type:- Documenttypes:- Functional description:-  Grief description of what the system can do. Introductory manual:-  Presents an informal introduction to the system. Systemreference manual:-  Describes all system facilities in detail. Systeminstallation manuals:-  Describes how to install the system. Systemadministratorsmanual:-  Describe how to manage the system when it is in use.
  • 57. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 57 User interface evaluation  Some evaluation of a user interface design should be carried out to assess its suitability.  Full scale evaluation is every expensive and impractical for most systems. Usability attributes:- Attributes Description Learn ability How long does it take a new user to become productive with the system? Speed of operation How well does the system response match the users work practice? Robustness How tolerant is the system of user error? Recoverability How good is the system at recovering from user errors? Adaptability How closely is the system tied to a single model of works? Real time software Introduction:-  To explain the concept of real time system and why these systems are usually implemented as concurrent processes.  To describe a design process for real time system.  To explain the role of a real time operating system. Real time system:-  Systems which monitor and control their environment.  Inevitably associated with hardware devices. Sensors: - Collect date from the system environment. Actuators: - Change the systemsenvironment. Time is critical. Real time system must respond within specified times. Real time software types:-  They classified into two types.
  • 58. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 58 Soft real time system Hard real time system Soft real time system:-  It is a system whose operation is degraded if result is not reduced to the specified timing requirements. Hard real time system:-  It is a system whose operation is incorrect if results are not produce according to the timing specification. Stimulus / response system:-  Given a stimulus the system must produce a response within a specified time. Periodic stimulus:-  Stimuli which occur at predictable time intervals  E.g. A temperature sensor may be polled 10 times per second. A periodic stimulus:-  Stimuli which occur at unpredictable times.  E.g. A system power failure may trigger an interrupt which must be processed by the system. A real time system model:-
  • 59. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 59 Sensor actuator processes:- System element Sensor control:-  Control information from sensors.  May buffer information collected in response to a sensor stimulus. Data processor:-  Carries out processing of collected information and computes the system response. Actuator control processes:-  Generates control signals for the actuators.
  • 60. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 60 Real time programming:-  Hard real time systems may have to program I assembly language to ensure that deadlines are met.  Languages such as allow efficient programs to be written but do not have construct management. System design  Design both the hardware and the software associated with system. Partition functions to either hardware or software.  Design decisions should be made on the basis on non functional system requirement.  Hardware delivers better performances but potentially longer development and less scope for change. Real time design process:-  Identify the stimuli to be processed and the required response to these stimuli.  For each stimulus and response identify the timing constraints.  The stimulus and response processing into concurrent process.  A process may be associated with each class of stimulus and response. Real time system modeling:-  The effect of a stimulus in a real time system may trigger a transition from one state to another.  Finate state machine can be used for modeling real time system.  FSM model lack structure even simple system can have a complex model.  UML includes notations for defining state machine models. Petrol pumb state model:-
  • 61. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 61 Os components:- Real time clock:- Provides information for process scheduling. Interrupt handler:- Manages a periodic requests for service. Scheduler:- Choose the next process to be run. Resource manager:- Allocates memory and processor resource. Dispatcher:- Start process execution. Non-stop systemcomponents:- Configuration manager:-  Responsible for the dynamic reconfiguration of the system software and hardware.  Hardwar models may be replaced and software upgraded without stopping the system. Fault manager:-  Responsible for detecting software and hardware fault and taking appropriate action. (E.g Back up dick) to ensure that the system continiuos in operation.
  • 62. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 62 Real time operating system components:- Process priority:-  The processing of some type of stimuli must sometimes take priority.  Interrupt level priority. Highest priority which is allocated to processes requiring a very fast response. clock level priority:- Allocated to periodic processes. Process Management:-  Concerned with managing the set of concurrent process.  Periodic processes are executed at pre-specified time intervals.  The real time clock to determine when to execute a process taking into account.  Process period time between execution.  Process deadline the time by which processing must be complete. Scheduling strategies:- Scheduler Choose process for execution Resource manager Allocate memory and processor Dispatcher Start executionon an available process
  • 63. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 63 Non-preemptive scheduling:-  Once a process has been scheduled for execution, it runs to completion or until it is blocked for some reason. Pre-emptive scheduling:-  The execution of an execution processes may be stopped if a higher priority process requires service. Scheduling algorithms:-  Round robin  Rate monotonic  Shortest deadline first Monitoring and control system:-  mportant class of real time system.  Continuously check sensors and take actions depending on sensor values.  Monitoring systems examine sensors and reports their results.  Control system take sensor values and control hardware actuators. Generic architecture:-
  • 64. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 64 Burglar alarm system:-  A system required to monitor sensors on doors and windows to detect the presence of intruders in a building.  When a sensor indicates a break in the system switches on light around the area and calls police automatically.  The system should include provision for operation without a mains power supply. Burglar alarm system:- Sensors:-  Movement detectors, window sensors, door sensors  50 window sensors, 30 door sensors and 200 movement.  Voltage drop sensor. Actions:-  When an intruder in detected, police are called automatically.  Light are switched on in rooms with active sensors.  An audible alarm is switched on;  The system switch automatically to backup power when a voltage drop is detected. B1 Control panel process Testing Process Monitoring process Control process P(A1) S2 S3 P(s1) P(s2) P(s3) P(A4) P(A3) P(A2) A1 A2 A3 A4
  • 65. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 65 Stimuli to be processed:- Power failure:-  Generated a periodically by a circuit moin to when received the system must switch to backup power within 50ms. Intruder alarm:-  Stimulus generated by system sensors. Response is to call the police, switch on building lights and the audible alarm. Timing requirement:- Stimulus response Timing requirement Power fail interrupt The switch to backup power must be completed within a deadline of 50ms Door alarm Each door alarm should be polled twice per second. Window alarm Each window alarm should be polled twice per second. Movement detector Each movement detector should be polled twice per second. Audible alarm The audible alarm should be switched on within ½ second of an alarm being raised by a sensor. Light switch The lights should be switched on within ½ Lights switch Second of an alarm being raised by a sensor. Communications The calls to the police should be started within 2 second of an alarm being raised by a sensor. Voice synthesizer A synthesized message should be available within 4 seconds of an alarm being raised by a sensor. Burglar alarm systemprocesses:-
  • 66. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 66 Control system:-  A burglar alarm system is primarily a monitoring system. It collects data from sensors but no real time actuator control.  Control systems are similar but in response to sensor values, the system sends.  An example of a monitoring and control system is a system that monitors temperature and switched heaters on and off. A temperature control system:- 500Hz 500Hz Sensor values 500Hz Switchcommand Room no Data acquisition system:-  Collect date from sensors for sub request processing and analysis.  Data collection processes and processing processes may have different periods and deadlines. Sensor Process Heater control process Furnace control process Theirmost at process
  • 67. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 67  Circular or ring buffer are a mechanism for smoothing speed difference. Data acquisition architecture:- Sensor identifier Sensor identifier & value & value Sensor identifier Sensor identifier & value & value Reactor data collection:-  A system collects data from a set of sensors monitoring the neutron flux a nuclear reactor.  Flux data is placed in a ring buffer for later processing.  The ring buffer is itself implemented as a concurrent process so that the collection and processing processes may be synchronized. Reactor flux monitoring:- A ring buffer:- S1 S2 S3 Sensor process Process data Sensor data buffer Display S1 S1 S1 Sensor process Sensor data buffer Process data
  • 68. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 68 Mutual exclusion:-  Producer processes collect data and add it to the buffer. Consumer processes take data from the buffer and make elements available.  Producer and consumer processes must be mutually excluded from accessing the same element.  The buffer must stop producer processes adding information to a full buffer and consumer processes trying to take information from an empty buffer. Clean room software development:-  It is a software development technique which is based on static verification.  The objective of these approach to software development is zero defect software.  The clean room approach software development is based on the notation that defect in software should be avoided rather then detected and repair. Characterstics:-
  • 69. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 69  Formal specification using a state transition model.  Incremental development where the customer priorities increment  Structure programming limited control and abstraction constructs are used in the program.  Static verification using rigorous inspection. Process team: Specificationteam:-  Responsible for developing and maintaining the system specification Developmentteam:-  Responsible for developing and verifying the software. The software is not executed or event compiled during this process. Certificationteam:-  Responsible for develop set of statistical test. Quality management:-  It is a software to develop without faults and conform to its specification  Quality managers are responsible for three kind of activity Quality assurance Quality control Quality planning Quality assurance:-  They must establish organizational procedures and standards which leads to high quality software. Quality control:-  They must ensure that procedure and standards are followed by the software development team. Quality planning:-
  • 70. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 70  They must select appropriate procedure and standards are followed by the software development team. Process quality assurance:-  Quality of the development process directly affects the quality of the delivered product.  Process quality is particularly important in software development.  The reason for this is that it is difficult to measure software attributes such as maintainability without using the software for a long period.  Quality manager must ensure that the quality of the software process that is used this involves 1) Defining process standard such as how review should be conducted when review should be help on and show on. 2) Monitoring the development process to ensure that the standards are bein followed 3) Reporting the standard product management & to the buyer of the software. Product quality:-  We can quality the product depending upon following. Design quality metric Program quality metric Documentation quality metric Design quality metric:-  There are number of possible design attributes which are important but we know that the key attribute is maintainability. Cohesion:- How closely are the part of the component related? Coupling:- How independent is a component. Understandability:- How easy is to understand the function of a component. Programquality metrics:-  We can quality the program using the following metric. Length of code Cyclometric complexity Length of identifiers Depth of conditional nesting
  • 71. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 71 Length of code:-  This is a measure of the sixe of program  Generally the larger the size of the code of a program components. Cyclometric complexity:-  This is a measure of a control complexity of a program  This control complexity is related to program understand ability Length of identifier:-  This is a measure of the average length of different identifiers in a program Depth of conditional nesting:-  This is a measure of the depth of nested if statement in a program  Nested if statements are hand to understand and potentially error prone Documentation quality metric:-  The quality of the documentation associated with a software product is as important as the quality of the software itself.  The best known of these metric running for index which is the measure of the readability of a passage of text Software metric:-  Any type of measurement which relates to software system, process are related documentation  Line of code in program the for index, no.of person base require to develop a component.  Allow the software and the software process to be qualified. Predictor & control metrics Control metric:-  This metric used by the management to control the software process. Predictor metric:-
  • 72. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 72  Measurement of product attribute that can be used to predict an associated product quality Internal and external attributes:-
  • 73. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 73 Verification and Validation Verification:  "Are we building the product right”.  The software should conform to its specification. Validation:  "Are we building the right product”.  The software should do what the user really requires.  These two terms are very confusing for most people, who use them interchangeability.  The following table highlights the difference between verification and validation. Verification Validation Verification address the concern: “Are you building it right?” Validation address the concern: “Are you building the right thing?” Ensure that the software system meets all the functionality Ensure that the functionalities meets the intended behavior Verification takes place first and includes the checking for documentation, code etc Validation occurs after verification mainly involves the checking of the over all product. Done by developers Done by testers It has static activities, as it. Includes collecting reviews, walk thoughts, and inspection to verify a software. It has dynamic activities, as it includes executing the software against the requirement. It is an objective process and no subjective decision should be needed to verify a software. It is subjective process and involves subjective decisions on how well a software works. The V & V process Is a whole life-cycle process - V & V must be applied at each stage in the software process. Has two principal objectives  The discovery of defects in a system;
  • 74. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 74  The assessment of whether or not the system is useful and useable in an operational situation. V& V goals  Verification and validation should establish confidence that the software is fit for purpose.  This does NOT mean completely free of defects.  Rather, it must be good enough for its intended use and the type of use will determine the degree of confidence that is needed. V & V confidence  Depends on system’s purpose, user expectations and marketing environment Software function The level of confidence depends on how critical the software is to an organisation. User expectations Users may have low expectations of certain kinds of software. Marketing environment Getting a product to market early may be more important than finding defects in the program. Static and dynamic verification  Software inspection Concerned with analysis of the static system representation to discover problems (static verification) May be supplement by tool-based document and code analysis .  Software testing. Concerned with exercising and observing product behaviour (dynamic verification). The system is executed with test data and its operational behaviour is observed
  • 75. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 75 Software inspections  These involve people examining the source representation with the aim of discovering anomalies and defects.  Inspections not require execution of a system so may be used before implementation.  They may be applied to any representation of the system (requirements, design,configuration data, test data, etc.).  They have been shown to be an effective technique for discovering program errors. Inspection success  Many different defects may be discovered in a single inspection. In testing, one defect ,may mask another so several executions are required.  The reuse domain and programming knowledge so reviewers are likely to have seen the types of error that commonly arise. Inspections and testing  Inspections and testing are complementary and not opposing verification techniques.  Both should be used during the V & V process.  Inspections can check conformance with a specification but not conformance with the customer’s real requirements.  Inspections cannot check non-functional characteristics such as performance, usability, etc.
  • 76. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 76 Program inspections  Formalised approach to document reviews Intended explicitly for defect detection (not correction).  Defects may be logical errors, anomalies in the code that might indicate an erroneous condition (e.g. an uninitialised variable) or non-compliance with standards. The inspection process Clean room software development:-  It is a software development technique which is based on static verification.  The objective of these approach to software development is zero defect software.  The clean room approach software development is based on the notation that defect in software should be avoided rather then detected and repair.
  • 77. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 77 Characterstics:-  Formal specification using a state transition model.  Incremental development where the customer priorities increment  Structure programming limited control and abstraction constructs are used in the program.  Static verification using rigorous inspection. Process team: Specification team:-  Responsible for developing and maintaining the system specification Development team:-  Responsible for developing and verifying the software. The software is not executed or event compiled during this process. Certification team:-  Responsible for develop set of statistical test. Software testing  Testing can be described as a process used for revealing defects in software, the software has a specified degree of quality with respect to selected attributes, An input output model of program testing. The main focus of such testing is to test:- System functions and performances System reliability and recoverability System installation(installation test) System behavior in the special conditions
  • 78. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 78 Types of testing:- System testing Integration Release Performance Component Interface System Testing  The system test is a series of test conducted to fully the computer based system  various types of system test are Recovery testing Security testing Stress testing Performance testing Recovery testing:-  It is intended to check the system’s ability to recover from failures.  In this type of testing is forced to fail and then it is verified.  For automated recovery then re-initialization checkpoint mechanisms, data recovery and restart are verified. Security testing:-  Security testing verifies that system protection mechanism prevent improper penetration or data alteration.  It also verifies that protection mechanisms built into the system prevent instruction such as unauthorized internal or external access or will full damage. Stress testing:-  Determines breakpoint of a system to establish maximum service level  In stress testing the system is executed in a manner that demands resource in abnormal quantity frequency or volume.  A variation of stress testing is a technique called sensitivity testing.
  • 79. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 79 Performance testing  It evaluates the runtime performance of the software especially real time software.  It utilization such as CPU load, through put, response time, memory usage, can be measured.  Beta testing is useful for performance testing. Integration testing  It is a combined parts of an application to determine if they function correctly.  Integration testing can be done in two ways. Bottom up integration Top down integration Bottom up integration:-  This testing begins with unit testing followed by tests of progressively higher level combination of units called modules or builds. Top down integration:-  The highest level modules are tested first and progressively, lower level modules are tested there after. Release testing  Release testing is the process of testing a particular release of a system that is intended for use outside of the development team.  The primary goal of the release testing process is to continue the customer o the system that it is good enough for use. Release testing is a form of system testing Important difference:-  A separate team that has not been involved in the system development should be responsible for release testing.  System testing by the development team should focus on discovery bugs in the system  The objective of release testing is to check that the system meets its requirements and is good enough for external use.
  • 80. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 80 Performance testing  It is mostly used to identify any bottle necks or performance issues rather than finding bugs in a software.  There are different causes that contribute in lowering the performance of a software. Network delay Client side processing Database transaction processing Load balancing between servers Data rendering  Performance testing is considered as one of the important testing type in terms of the following aspects. Speed (Response time, data rendering and accessing_ Capacity Stability Scalability  Performance testing can be either qualitative or quantitative can be divided into different sub types such as load testing & stress testing. Load testing:-  It is a process of testing the behavior of software by applying maximum load in-terms of software accessing and manipulating large input data.  It can be done at both normal and peak load conditions. This type of testing identifies load testing is performed with the help of automated tools such as load runner.  Most of the time, load testing is performed with the help of automated tools such as load runner, app loader, IBM rational. Stress testing:-  It includes testing the behavior of software under abnormal conditions.  E.g:- It may include taking away some resources or applying a load beyond the actual load limit.
  • 81. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 81  The software by applying the load to the system and taking over the resources used by the software to identify the breaking point. Component testing  It is a method where testing of each component in an application is done separately.  Component testing is also known as module and program testing.  Component testing is done by the tester.  In isolation from rest of the system depending on the development life cycle mode.  In such case the missing software is replaced by stubs and drivers. Stubs:-  Stubs are dummy modules that are always distinguish as “called programs” that is handle in integration testing Top down approach it used when sub programs are under construction.  Stubs are considered as the dummy modules that always simulate the low level modules. Drivers:-  Drivers are also known as dummy modules, which are always distinguished as “called program”.  It handled in Bottomup integration testing, it is only when main programs are under construction.  Driver are considered as the dummy modules that always simulate the high level model.  Component testing is done by the testers. Before we start with the integration testing always preferable to do the component testing. Interface testing  It is performed to evaluate system or components pass data and control correctly to one another  These modules are working properly and errors are handled properly. Interface checklist:-  Verify that communication between the systems are done correctly.  Verify if all supported hardware and software has been tested..
  • 82. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 82  Verify if all linked documents be supported open on all platforms.  Verify the security requirements or encryption.  Check if a solution can handle network failures between website and application server. Black box testing:-  The technique of testing without having any knowledge of the interior working of the application is called black box testing. White box testing:-  It is the detailed investigation of internal logic and structure of the code.  White box testing is also called glass testing or open box testing.  In order to perform white box testing on an application, a tester needs to known the internal working of the code. COCOMO Model Introduction:-  Boehm postulated that any software development project can be classified into one of the following three categories based on the development Organic Semi detached Embedded  In order to classify a product into the identified categories, Boehm not only considered the characteristics of the product but also those of the development team and development environment.
  • 83. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 83  System programs interact directly with the hardware and typically involve meeting timing constraints and concurrent processing. Organic:-  A development project can be considered of organic type, if the project deals with developing a well understood application program the size of the development team is reasonably small and the team members are experienced in developing similar types of project. Semidetached:-  A development project can be considered of semidetached types, if the development consists of a mixture of experienced and inexperienced staff.  Team members may have limited experience on related systems but may be unfamiliar with some aspects of the system being developed. Embedded:-  A development project is considered to be of embedded type, if the software being developed is strongly coupled to complex hardware or if the stringent regulations on the operational procedures exist. COCOMO:-  Constructive cost estimation model was proposed by Boehm [1981].  According to Boehm software cost estimation should be done through three stages. Basic COCOMO Intermediate COCOMO Complete COCOMO Basic COCOMO Model:-  The basic COCOMO model gives an approximate estimate of the project parameters.  The basic COCOMO estimation model is given by the following expressions. Effort=a1*(𝑲𝑳𝑶𝑪) 𝟐 𝒂 PM 𝑻 𝒅𝒆𝒗= b1*(𝑬𝒇𝒇𝒐𝒓𝒕) 𝟐 𝒃 Moths  KLOC is the estimated size of the software product expressed in Kilo lines of code.
  • 84. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 84  a1 a2 b1 b2 are constants for each category of software products. 𝑇𝑑𝑒𝑣 is the estimated time to develop the software expressed in months  Effort is the total effort required to develop the software product expressed in person months(PMs). Estimation of development effort:-  For the three classes of software products the formulas for estimating the effort based on the code size are shown below. Organic:- Effort=2.4 (𝐾𝐿𝑂𝐶)1.05 PM Semidetached:- Effort=3.0 (𝐾𝐿𝑂𝐶)1.12 PM Embedded:- Effort=3.6 (𝐾𝐿𝑂𝐶)1.10 PM Estimation of development time:-  For the three classes of software product, the formulas for estimating the development time based on the effort are given below. Organic:- 𝑇𝑑𝑒𝑣 =2.5(𝑒𝑓𝑓𝑜𝑟𝑡)0.38 Months Semidetached:- 𝑇𝑑𝑒𝑣 =2.5(𝑒𝑓𝑓𝑜𝑟𝑡)0.35 Months Embedded:- 𝑇𝑑𝑒𝑣 =2.5(𝑒𝑓𝑓𝑜𝑟𝑡)0.32 Months Example:-  Organic type software product=32000 lines of source code.  Average salary of software engineers= Rs 15000 Determine the effort required to develop the software product and the nominal development time. Solution:-  From the basic COCOMO estimation formula for organic software  Effort=2.4*(32)1.05 =91PM  Nominal development time= 2.5*(91)0.38 =14  Cost required to develop the product = 14 * 15000 Rs=2,10,000 Intermediate COCOMO Model:-  The basic COCOMO Model assumes that effort and development time are functions of the product size alone.
  • 85. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 85  A host of other project parameters besides the product size affect the efforts required to develop the product as well as the development time.  In general, the cost drivers can be classified as being attributes of the following items Product Computer Personnel Development environment Product:-  The characteristics of the product that are considered include inherent complexity of the product, reliability requirements of the product etc. Computer:-  Characteristics of the computer that are considered include the execution speed required storage pace required etc. Personnel:-  The attributes of development personnel that are considered include the experience level of personnel programming capability, analysis capability etc. Development environment:-  Development environment attributes capture the development facilities available to the developers.  CASE tools used for software development. Complete COCOMO model:-  A major short coming of both the basic and intermediate COCOMO models is that they consider a software product as a single homogeneous entity.  However, most large system are made up several smaller subsystems. E.g:-  If some subsystem may be considered as organic type, some semidetached and some embedded.
  • 86. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 86  The complete COCOMO model considers these differences in characteristics of the subsystems and estimates the effort and development.  The cost of each subsystems is estimated separately. This approach reduces the margin of error in the final estimate.  A distributed management information system product of an organization having offices at several places across the country can have the following sub components Database part Graphical user interface part Communication part  The communication part can be considered as embedded software.  The database part can be semi-detached software.  The GUI part can be organic software.  The costs for these three components can be estimated separately and summed up to give the overall cost of the system. Quality management:-  It is a software to develop without faults and conform to its specification  Quality managers are responsible for three kind of activity Quality assurance Quality control Quality planning Quality assurance:-  They must establish organizational procedures and standards which leads to high quality software. Quality control:-  They must ensure that procedure and standards are followed by the software development team. Quality planning:-  They must select appropriate procedure and standards are followed by the software development team.
  • 87. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 87 Process quality assurance:-  Quality of the development process directly affects the quality of the delivered product.  Process quality is particularly important in software development.  The reason for this is that it is difficult to measure software attributes such as maintainability without using the software for a long period.  Quality manager must ensure that the quality of the software process that is used this involves 4) Defining process standard such as how review should be conducted when review should be help on and show on. 5) Monitoring the development process to ensure that the standards are bein followed 6) Reporting the standard product management & to the buyer of the software. Product quality:-  We can quality the product depending upon following. Design quality metric Program quality metric Documentation quality metric Design quality metric:-  There are number of possible design attributes which are important but we know that the key attribute is maintainability. Cohesion:- How closely are the part of the component related? Coupling:- How independent is a component. Understandability:- How easy is to understand the function of a component. Program quality metrics:-  We can quality the program using the following metric. Length of code Cyclometric complexity Length of identifiers Depth of conditional nesting
  • 88. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 88 Length of code:-  This is a measure of the sixe of program  Generally the larger the size of the code of a program components. Cyclometric complexity:-  This is a measure of a control complexity of a program  This control complexity is related to program understand ability Length of identifier:-  This is a measure of the average length of different identifiers in a program Depth of conditional nesting:-  This is a measure of the depth of nested if statement in a program  Nested if statements are hand to understand and potentially error prone Documentation quality metric:-  The quality of the documentation associated with a software product is as important as the quality of the software itself.  The best known of these metric running for index which is the measure of the readability of a passage of text Software metric:-  Any type of measurement which relates to software system, process are related documentation  Line of code in program the for index, no.of person base require to develop a component.  Allow the software and the software process to be qualified. Predictor & control metrics Control metric:-  This metric used by the management to control the software process.
  • 89. SOFTWARE ENGINEERING K.A.Mohamed Riyazudeen 15UCSC52 Assistant Professor, Department of CS (SF). 89 Predictor metric:-  Measurement of product attribute that can be used to predict an associated product quality Internal and external attributes:-