SlideShare una empresa de Scribd logo
1 de 67
Descargar para leer sin conexión
“The beginning is the most important part of the work.”
— Plato
NHCE-MCA Software Engineering Concepts 1
UnitUnit--11
OverviewOverview
NHCE-MCA Software Engineering Concepts 2
Unit Content
1. FAQs about software engineering
2 Professional and ethical responsibility2. Professional and ethical responsibility
3. Socio-technical Systems
NHCE-MCA Software Engineering Concepts 3
1 FAQs about software engineering1. FAQs about software engineering
NHCE-MCA Software Engineering Concepts 4
FAQs about software engineering
What is software?
What is software engineering?What is software engineering?
What is the difference between software engineering and
computer science?
What is the difference between software engineering and
system engineering?
What is a software process?What is a software process?
What is a software process model?
NHCE-MCA Software Engineering Concepts 5
FAQs about software engineering
What are the costs of software engineering?
Wh t ft i i th d ?What are software engineering methods?
What is CASE (Computer-Aided Software Engineering)
What are the attributes of good software?
What are the key challenges facing softwareWhat are the key challenges facing software
engineering?
NHCE-MCA Software Engineering Concepts 6
What is software?
Software is a (computing) written programs, procedures
or rules and associated documentation pertaining to the
operation of a computer system and that are stored in
read/ write memory.
NHCE-MCA Software Engineering Concepts 7
What is software engineering?
The IEEE Computer Society defines software engineering as
The application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance of
ft th t i th li ti f i i t ftsoftware; that is, the application of engineering to software.
NHCE-MCA Software Engineering Concepts 8
Difference of Software engineering and Computer science
SoftwareSoftware engineeringengineering is concerned with the
practicalitiespracticalities of developing and delivering useful
software.
ComputerComputer sciencescience is concerned with theorytheory and
fundamentalsfundamentals;;fundamentalsfundamentals;;
NHCE-MCA Software Engineering Concepts 9
Difference of Software engineering and System engineering
SoftwareSoftware engineeringengineering is part of this process concerned
with developing the software infrastructure controlwith developing the software infrastructure, control,
applications and databases in the system.
SystemSystem engineeringengineering is concerned with all aspects of
computer-based systems development including
hardware, software and process engineering.
NHCE-MCA Software Engineering Concepts 10
What is a software process?
A set of activities whose goal is the development or
evolution of software.
Generic activities in all software processes are:
•• SpecificationSpecification - what the system should do and its•• SpecificationSpecification - what the system should do and its
development constraints
•• DevelopmentDevelopment - production of the software system
•• ValidationValidation -- checking that the software is what the
customer wants
• Evolution changing the software in response to
NHCE-MCA Software Engineering Concepts 11
• Evolution - changing the software in response to
changing demands.
What is a software process model?
A simplified representation of a software process, presented from a
specific perspective.
Examples of process perspectives are
• Workflow perspective - sequence of activities;
• Data-flow perspective - information flow;
• Role/action perspective - who does what.
Generic process models
• Waterfall;
• Iterative development;
• Component-based software engineering.
NHCE-MCA Software Engineering Concepts 12
p g g
What are the costs of software engineering?
Costs vary depending on the type of system being
developed and the requirements of system attributesdeveloped and the requirements of system attributes
such as performanceperformance and systemsystem reliabilityreliability.
Distribution of costs depends on the developmentdevelopment modelmodel
that is used.
For custom software, evolutionevolution costscosts often exceed
developmentdevelopment costscostsdevelopmentdevelopment costscosts..
OtherOther costcost cancan bebe operationaloperational costcost ,maintenance,maintenance cost,cost,
NHCE-MCA Software Engineering Concepts 13
tangibletangible cost,cost, intangibleintangible costcost
What are software engineering methods?
St t d h t ft d l t hi h i l d tStructured approaches to software development which include system
models, notations, rules, design advice and process guidance.
M d l d i tiModel descriptions
• Descriptions of graphical models which should be produced;
Rules
• Constraints applied to system models;
Recommendations
• Advice on good design practice;
Process guidance
• What activities to follow.
NHCE-MCA Software Engineering Concepts 14
CASE (Computer-Aided Software Engineering)
Software systems that are intended to provide automated support for
software process activities.
CASE systems are often used for method support.
UpperUpper--CASECASE
• Tools to support the early process activities of requirementsrequirements
and design;design;
LowerLower--CASECASE
• Tools to support later activities such as programming,programming,
debuggingdebugging and testing.testing.
NHCE-MCA Software Engineering Concepts 15
What are the attributes of good software?
M i t i bilitMaintainability
• Software must evolve to meet changing needs;
Dependability
• Software must be trustworthy;
Efficiency
• Software should not make wasteful use of system resources;
Acceptability
• Software must accepted by the users for which it was designed.
This means it must be understandable, usable and compatible
with other systems.
NHCE-MCA Software Engineering Concepts 16
What are the key challenges facing software
engineering?
Heterogeneity, delivery and trust.
Heterogeneity
• Developing techniques for building software that can cope with
heterogeneous platforms and execution environments;
Delivery
• Developing techniques that lead to faster delivery of software;
TrustTrust
• Developing techniques that demonstrate that software can be
trusted by its users
NHCE-MCA Software Engineering Concepts 17
trusted by its users.
2 Professional2. Professional
and
Ethical responsibility
NHCE-MCA Software Engineering Concepts 18
Professional and ethical responsibility
Software engineering involves wider
responsibilities than simply the application ofresponsibilities than simply the application of
technical skills.
Software engineers must behave in an honesthonest
and ethicallethically responsible way if they are to beand ethicallethically responsible way if they are to be
respected as professionals.
Ethical behaviour is more than simply upholding
the law
NHCE-MCA Software Engineering Concepts 19
the law.
Issues of Professional Responsibility
Confidentiality
• Engineers should normally respect the confidentialityg y p y
of their employers or clients irrespective of whether
or not a formal confidentiality agreement has beenor not a formal confidentiality agreement has been
signed.
Competence
• Engineers should not misrepresent their level ofEngineers should not misrepresent their level of
competence. They should not knowingly accept work
which is out with their competence
NHCE-MCA Software Engineering Concepts 20
which is out with their competence.
Issues of professional responsibility
Intellectual property rights
• Engineers should be aware of local laws governing the use ofEngineers should be aware of local laws governing the use of
intellectual property such as patents, copyright, etc. They
should be careful to ensure that the intellectual property ofp p y
employers and clients is protected.
Computer misuseComputer misuse
• Software engineers should not use their technical skills to
misuse other people’s computers Computer misuse rangesmisuse other people s computers. Computer misuse ranges
from relatively trivial (game playing on an employer’s machine,
say) to extremely serious (dissemination of viruses).
NHCE-MCA Software Engineering Concepts 21
y) y ( )
ACM/IEEE Code of Ethics
The professional societies in the US have cooperated to
produce a code of ethical practiceproduce a code of ethical practice.
The Code contains EightEight PrinciplesPrinciples related to the
behaviour of and decisions made by professional
software engineers, including practitioners, educators,
managers, supervisors and policy makers, as well as
trainees and students of the profession.
NHCE-MCA Software Engineering Concepts 22
Code of ethics - principles
software engineers shall adhere to the following Eight Principles:software engineers shall adhere to the following Eight Principles:
Public
• Software engineers shall act consistently with the publicpublic
interestinterest..
Client And Employer
• Software engineers shall act in a manner that is in the best
interestsinterests ofof theirtheir clientclient andand employeremployer consistent with the public
interest.
Product
• Software engineers shall ensure that their products and related
NHCE-MCA Software Engineering Concepts 23
g p
modifications meet the highesthighest professionalprofessional standardsstandards possible.
Code of ethics - principles
Judgment
• Software engineers shall maintain integrityintegrity and independenceindependence• Software engineers shall maintain integrityintegrity and independenceindependence
in their professional judgment.
M tManagement
• Software engineering managersmanagers and leadersleaders shall subscribe to
and promote an ethical approach to the management of
software development and maintenance.
Profession
• Software engineers shall advance the integrityintegrity and reputationreputation of
NHCE-MCA Software Engineering Concepts 24
the profession consistent with the public interest.
Code of ethics - principles
Colleagues
• Software engineers shall be fairfair to and supportivesupportive of• Software engineers shall be fairfair to and supportivesupportive of
their colleagues.
Self
• Software engineers shall participate in lifelonglifelongSoftware engineers shall participate in lifelonglifelong
learninglearning regardingregarding thethe practicepractice of their profession
d h ll t thi l h t th tiand shall promote an ethical approach to the practice
of the profession.
NHCE-MCA Software Engineering Concepts 25
3 Socio technical Systems3. Socio-technical Systems
NHCE-MCA Software Engineering Concepts 26
Topics covered
To explain what a sociosocio--technicaltechnical systemsystem is and the distinction
between this and a computer-based systembetween this and a computer based system
To introduce the concept of emergentemergent systemsystem propertiesproperties such as
reliability and securityreliability and security
To explain systemsystem engineeringengineering and system procurement processes
To explain why the organisationalorganisational contextcontext ofof aa systemsystem affects itsTo explain why the organisationalorganisational contextcontext ofof aa systemsystem affects its
design and use
To discuss legacylegacy systemssystems and why these are critical to manyTo discuss legacylegacy systemssystems and why these are critical to many
businesses
NHCE-MCA Software Engineering Concepts 27
What is a system?
A purposeful collection of interinter--relatedrelated components
working together to achieveachieve some common objectiveworking together to achieveachieve some common objective.
A system may include software, mechanical, electrical
and electronic hardware and be operated by people.
NHCE-MCA Software Engineering Concepts 28
Components of ( an Information)System
NHCE-MCA Software Engineering Concepts 29
System categories
Technical computer-based systems
• Systems that include hardware and software but where the• Systems that include hardware and software but where the
operatorsoperators and operationaloperational processesprocesses are not normally
considered to be part of the system The system is not self-considered to be part of the system. The system is not self
aware.
Socio technical systemsSocio-technical systems
• Systems that include technical systems but also operationaloperational
d ll h d i t t ith th t h i lt h i lprocessesprocesses and peoplepeople who use and interact with the technicaltechnical
systemsystem.. Socio-technical systems are governed by
organisational policies and rules
NHCE-MCA Software Engineering Concepts 30
organisational policies and rules.
Socio-technical system characteristics
EmergentEmergent propertiesproperties
• Properties of the systemsystem ofof aa wholewhole that depend on the system
components and their relationships.
NonNon--deterministicdeterministic
• They do not always produce the same output when presented
with the same input because the systems' behaviour is partially
dependent on human operators.
ComplexComplex relationshipsrelationships withwith organisationalorganisational objectivesobjectives
• The extent to which the system supports organisational
objectives does not just depend on the system itself.
NHCE-MCA Software Engineering Concepts 31
Emergent properties
Properties of the systemsystem asas aa wholewhole rather than
properties that can be derived from the properties ofproperties that can be derived from the properties of
components of a system
Emergent properties are a consequence of the
relationships between system components
They can therefore only be assessed and measured
once the components have been integrated into a systemp g y
NHCE-MCA Software Engineering Concepts 32
Examples of emergent properties
Property Description
V l Th l f t (th t t l i d) i d di h thVolume The volume of a system (the total space occupied) varies depending on how the
component assemblies are arranged and connected.
Reliability System reliability depends on component reliability but unexpected interactions
can cause new types of failure and therefore affect the reliability of the system.
Security The security of the system (its ability to resist attack) is a complex property that
cannot be easily measured. Attacks may be devised that were not anticipated byy y p y
the system designers and so may defeat built-in safeguards.
Repairability This property reflects how easy it is to fix a problem with the system once it has
been discovered It depends on being able to diagnose the problem access thebeen discovered. It depends on being able to diagnose the problem, access the
components that are faulty and modify or replace these components.
Usability This property reflects how easy it is to use the system. It depends on the
NHCE-MCA Software Engineering Concepts 33
technical system components, its operators and its operating environment.
Types of emergent property
FunctionalFunctional propertiesproperties
• These appear when all the parts of a systemsystem workwork togethertogether to
achieve some objective.
NonNon--functionalfunctional emergentemergent propertiespropertiesgg p pp p
• These relate to the behaviourbehaviour ofof thethe systemsystem in its operational
environment. They are often critical for computer-basedy
systems as failure to achieve some minimal defined level in
these properties may make the system unusable.
• Examples are reliability, performance, safety, and security.
NHCE-MCA Software Engineering Concepts 34
Systems engineering
Specifying, designing, implementing, validating,
deploying and maintaining socio-technical systems.
Concerned with the services provided by the system,
constraints on its construction and operation and the
ways in which it is used.ways in which it is used.
NHCE-MCA Software Engineering Concepts 35
The system engineering process
Software may have to compensate for hardware
problems.p
Inevitably involves engineers from different disciplines
who must work togetherwho must work together
• Much scope for misunderstanding here.
• Different disciplines use a different vocabulary and much
negotiation is required.
NHCE-MCA Software Engineering Concepts 36
The systems engineering process
Requirements
definition
System
decommissioning
System
design
definition
System
evolution
decommissioning
Sub-system
design
System
evolution
System
Sub-system
development
System
installation
System
integration
NHCE-MCA Software Engineering Concepts 37
Inter-disciplinary involvement
Electronic
engineering
Mechanical
engineering
Software
engineering
ATC systems
engineering
User interface
engineering
Structural
engineering
ATC systems
engineering
User interface
design
Structural
engineering
Electrical
engineering
Architecture
Civil
engineering engineeringengineering
NHCE-MCA Software Engineering Concepts 38
1.System requirements definition
Three types of requirement defined at this stage
• Abstract functional requirements. Systemq y
functions are defined in an abstract way.
System properties Non functional requirements for• System properties. Non-functional requirements for
the system in general are defined.
• Undesirable characteristics. Unacceptable system
behaviour is specified.
Should also define overall organisational objectives for
the system
NHCE-MCA Software Engineering Concepts 39
the system.
System requirements problems
Complex systems are usually developed to address
wicked problems
• Problems that are not fully understood;
Must anticipate hardware/communicationsMust anticipate hardware/communications
developments over the lifetime of the system.
Hard to define non-functional requirements
(particularly) without knowing the
component structure of the system.
NHCE-MCA Software Engineering Concepts 40
2.System design process
Partition Define sub-systemPartition
requirements
Define sub-system
interfaces
Identify
sub-systems
Specify sub-system
functionality
Assign requirements
to sub-systems
NHCE-MCA Software Engineering Concepts 41
System design process
Partition requirements
• Organise requirements into related groupsOrganise requirements into related groups.
Identify sub-systems
• Identify a set of sub-systems which collectively can meet
the system requirements.
Assign requirements to sub-systems
Specify sub system functionalitySpecify sub-system functionality.
Define sub-system interfaces
NHCE-MCA Software Engineering Concepts 42
• Critical activity for parallel sub-system development.
System design problems
Requirements partitioning to hardware,
software and human components may involve a lot ofsoftware and human components may involve a lot of
negotiation.
Difficult design problems are often assumed to be readily
solved using software.
Hardware platforms may be inappropriate for
software requirements so softwaresoftware mustmust compensatecompensateq pp
forfor thisthis..
NHCE-MCA Software Engineering Concepts 43
Requirements and design
Requirements engineering and system design are
inextricably linked.
Constraints posed by the system’s environment and
other systems limit design choices so the actual design toother systems limit design choices so the actual design to
be used may be a requirement.
I iti l d i b t t t thInitial design may be necessary to structure the
requirements.
NHCE-MCA Software Engineering Concepts 44
Spiral model of requirements/design
NHCE-MCA Software Engineering Concepts 45
System modelling
An architectural model presents an abstractabstract viewview of the
sub-systems making up a systemy g p y
May include major informationinformation flowsflows between sub-
systemssystems
Usually presented as a blockblock diagramdiagram
May identify different types of functionalfunctional componentcomponent in
the model
NHCE-MCA Software Engineering Concepts 46
Alarm system
Movement
sensors
Door
sensorssensors sensors
Alarm
controller
Voice
synthesiser
Siren
Telephone
caller
External
control centre
synthesiser caller
NHCE-MCA Software Engineering Concepts 47
Sub-system description
Sub-system Description
Movement sensors Detects movement in the rooms monitored by the system
Door sensors Detects door opening in the external doors of the building
Alarm controller Controls the operation of the systemAlarm controller Controls the operation of the system
Siren Emits an audible warning when an intruder is suspected
Voice synthesizer Synthesizes a voice message giving the location of the suspected intruder
Telephone caller Makes external calls to notify security, the police, etc.
NHCE-MCA Software Engineering Concepts 48
ATC system architecture
NHCE-MCA Software Engineering Concepts 49
3.Sub-system development
Typically parallel projects developing the
hardware, software and communications.hardware, software and communications.
May involve some COTS (Commercial Off-the-Shelf) systems
procurement.procurement.
Lack of communication across implementation
teams.teams.
Bureaucratic and slow mechanism for
proposing system changes means that the development scheduleproposing system changes means that the development schedule
may be extended because of the need for rework.
NHCE-MCA Software Engineering Concepts 50
4.System integration
The process of putting hardware,hardware, softwasoftware and
peoplepeople together to make a systempeoplepeople together to make a system.
Should be tackled incrementallyincrementally so that sub-systems
are integrated one at a time.
InterfaceInterface problemsproblems between sub-systems are usually
found at this stage.
May be problems with uncoordinated deliveriesMay be problems with uncoordinated deliveries
of system components.
NHCE-MCA Software Engineering Concepts 51
5.System installation
After completion, the system has to be installed in the
t ’ i tcustomer’s environment
• Environmental assumptions may be incorrect;
• May be human resistance to the introduction of
a new system;
• System may have to coexist with alternative
systems for some time;
• May be physical installation problems (e.g.
cabling problems);
NHCE-MCA Software Engineering Concepts 52
• Operator training has to be identified.
6.System evolution
Large systems have a long lifetime. They must evolve to
meet changing requirements.
Evolution is inherently costlyy y
• Changes must be analysed from a technical and business
perspective;perspective;
• Sub-systems interact so unanticipated problems can arise;
• There is rarely a rationale for original design decisions;• There is rarely a rationale for original design decisions;
• System structure is corrupted as changes are made to it.
NHCE-MCA Software Engineering Concepts 53
7.System decommissioning
Taking the system out of service after its useful lifetime.
May require removal of materials (e g dangerousMay require removal of materials (e.g. dangerous
chemicals) which pollute the environment
• Should be planned for in the system design by
encapsulation.
May require data to be restructured and converted to be
used in some other system.y
NHCE-MCA Software Engineering Concepts 54
Organizations/people/systemsOrganizations/people/systems
Socio-technical systems are organisational systems
intended to help deliver some organisationalorganisational or
businessbusiness goalgoal.
If you do not understand the organisational environment
where a system is used, the system is less likely to meetwhere a system is used, the system is less likely to meet
the real needs of the business and its users.
NHCE-MCA Software Engineering Concepts 55
Human and organisational factors
Process changes
• Does the system require changes to the worky q g
processes in the environment?
Job changes
• Does the system de-skill the users in an environment or
cause them to change the way they work?
O i ti l hOrganisational changes
• Does the system change the political power structure in
an organisation?an organisation?
NHCE-MCA Software Engineering Concepts 56
Organisational processes
The processes of systems engineering overlap and
interact with organisational procurementprocurement processesprocesses..
Operational processes are the processes involved in
using the system for its intended purpose For newusing the system for its intended purpose. For new
systems, these have to be defined as part of the system
d idesign.
Operational processes should be designed to be flexible
and should notnot forceforce operationsoperations toto bebe donedone in a
particular way. It is important that human operators can
NHCE-MCA Software Engineering Concepts 57
p y p p
use their initiative if problems arise.
Procurement/development processes
NHCE-MCA Software Engineering Concepts 58
System procurement
Acquiring a system for an organization to meet some need
Some system specification and architectural design is usuallySome system specification and architectural design is usually
necessary before procurement
• You need a specification to let a contract for systemYou need a specification to let a contract for system
development
• The specification may allow you to buy a commercial off-the-The specification may allow you to buy a commercial off the
shelf (COTS) system. Almost always cheaper than developing
a system from scratch
Large complex systems usually consist of a mix of off the shelf and
specially designed components. The procurement processes for
NHCE-MCA Software Engineering Concepts 59
these different types of component are usually different.
The system procurement process
ChooseIssue requestChooseAdapt
Off-the-shelf
system available
Choose
supplier
Issue request
for bids
Choose
system
Adapt
requirements
Survey market forSurvey market for
existing systems
Let contract forNegotiateSelectIssue request Let contract for
development
Negotiate
contract
Select
tender
Issue request
to tender
Custom system
required
NHCE-MCA Software Engineering Concepts 60
Procurement issues
Requirements may have to be modified to match the
capabilities of off-the-shelf components.
The requirements specification may be part of theq p y p
contract for the development of the system.
Th i ll t t ti ti i d tThere is usually a contract negotiation period to agree
changes after the contractor to build a system has been
selected.
NHCE-MCA Software Engineering Concepts 61
Contractors and sub-contractors
The procurement of large hardware/software systems is
usually based around some principal contractor.
Sub-contracts are issued to other suppliers to supplypp pp y
parts of the system.
C t li ith th i i l t t d dCustomer liases with the principal contractor and does
not deal directly with sub-contractors.
NHCE-MCA Software Engineering Concepts 62
Contractor/Sub-contractor model
NHCE-MCA Software Engineering Concepts 63
Legacy systemsLegacy systems
Socio-technical systems that have been developed using old or
obsolete technology.
Crucial to the operation of a business and it is often too risky to
discard these systems
• Bank customer accounting system;
• Aircraft maintenance system.
Legacy systems constrain new business processes and consume a
high proportion of company budgets.
NHCE-MCA Software Engineering Concepts 64
Legacy system components
Hardware - may be obsolete mainframe hardware.
Support software - may rely on support software from suppliers who
are no longer in business.
Application software - may be written in obsolete programming
languages.
Application data - often incomplete and inconsistent.
Business processes - may be constrained by software structure and
functionality.
Business policies and rules - may be implicit and embedded in the
system software.
NHCE-MCA Software Engineering Concepts 65
Chapter Review Questions
1. What are the difference between generic software product development and
custom software development?
2 Describe important attribute which all software product should have2. Describe important attribute which all software product should have.
3. What is the difference between a software process model and a software
process?
4.4. SuggestSuggest in which way a Software process model might be helpful in identifying
possible process improvement.
5 Di th i i i ft i i f i l thi /5. Discuss the various issues in software engineering professional ethics/
responsibility.
6. Explain ACM/IEEE code of ethics and suggest an appropriate example that6 p a C / code o et cs a d suggest a app op ate e a p e t at
illustrates that clause.
7. Discuss in detail systemsystem engineeringengineering processprocess with example.
NHCE-MCA Software Engineering Concepts 66
8. Explain system procurement process.
9. Explain why legacy systems may be critical to the operation of a business.
First Class Test Questions
1. Explain ACM/IEEE code of ethics and suggest an appropriate
example that illustrates that clause.
2. Discuss in detail system engineering process with example.
3. Explain system procurement process.
4. Explain why legacy systems may be critical to the operation of a
business.
5 Suggest in which way a Software process model might be5. Suggest in which way a Software process model might be
helpful in identifying possible process improvement.
Test Date: 26-02-2010
Time: 3.00-3.45pm
NHCE-MCA Software Engineering Concepts 67
e 3 00 3 5p
Note: Out of five questions any three questions will be asked to write the test but students should study all the
questions

Más contenido relacionado

La actualidad más candente

Quality Attribute: Testability
Quality Attribute: TestabilityQuality Attribute: Testability
Quality Attribute: TestabilityPranay Singh
 
Software Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsMuhammadTalha436
 
Ian Sommerville, Software Engineering, 9th Edition Ch 4
Ian Sommerville,  Software Engineering, 9th Edition Ch 4Ian Sommerville,  Software Engineering, 9th Edition Ch 4
Ian Sommerville, Software Engineering, 9th Edition Ch 4Mohammed Romi
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
 
Ch 4 software engineering
Ch 4 software engineeringCh 4 software engineering
Ch 4 software engineeringMohammed Romi
 
What is system level analysis
What is system level analysisWhat is system level analysis
What is system level analysisCAST
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architectureGang Tao
 
System engineering
System engineeringSystem engineering
System engineeringSlideshare
 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization Ivano Malavolta
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsGatte Ravindranath
 
Software Process in Software Engineering SE3
Software Process in Software Engineering SE3Software Process in Software Engineering SE3
Software Process in Software Engineering SE3koolkampus
 
Software design presentation
Software design presentationSoftware design presentation
Software design presentationbit allahabad
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for BegginersChinh Ngo Nguyen
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11Siddharth Ayer
 
SWE-401 - 4. Software Requirement Specifications
SWE-401 - 4. Software Requirement Specifications SWE-401 - 4. Software Requirement Specifications
SWE-401 - 4. Software Requirement Specifications ghayour abbas
 
Reference Data Management
Reference Data ManagementReference Data Management
Reference Data ManagementProfinit
 

La actualidad más candente (20)

Quality Attribute: Testability
Quality Attribute: TestabilityQuality Attribute: Testability
Quality Attribute: Testability
 
Software Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for Exams
 
Ian Sommerville, Software Engineering, 9th Edition Ch 4
Ian Sommerville,  Software Engineering, 9th Edition Ch 4Ian Sommerville,  Software Engineering, 9th Edition Ch 4
Ian Sommerville, Software Engineering, 9th Edition Ch 4
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
Ch 4 software engineering
Ch 4 software engineeringCh 4 software engineering
Ch 4 software engineering
 
What is system level analysis
What is system level analysisWhat is system level analysis
What is system level analysis
 
Sda 3
Sda   3Sda   3
Sda 3
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architecture
 
System engineering
System engineeringSystem engineering
System engineering
 
Ch7
Ch7Ch7
Ch7
 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design Patterns
 
Software Process in Software Engineering SE3
Software Process in Software Engineering SE3Software Process in Software Engineering SE3
Software Process in Software Engineering SE3
 
Software design presentation
Software design presentationSoftware design presentation
Software design presentation
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for Begginers
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11
 
SWE-401 - 4. Software Requirement Specifications
SWE-401 - 4. Software Requirement Specifications SWE-401 - 4. Software Requirement Specifications
SWE-401 - 4. Software Requirement Specifications
 
Sa03 tactics
Sa03 tacticsSa03 tactics
Sa03 tactics
 
Reference Data Management
Reference Data ManagementReference Data Management
Reference Data Management
 

Similar a Unit 1-overview of software engineering

Similar a Unit 1-overview of software engineering (20)

Online Software development training
Online Software development trainingOnline Software development training
Online Software development training
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
 
sw1.pdf
sw1.pdfsw1.pdf
sw1.pdf
 
Soft Eng - Introduction
Soft Eng - IntroductionSoft Eng - Introduction
Soft Eng - Introduction
 
Ch1
Ch1Ch1
Ch1
 
Ch1
Ch1Ch1
Ch1
 
se
sese
se
 
ch1_introduction (1).ppt
ch1_introduction (1).pptch1_introduction (1).ppt
ch1_introduction (1).ppt
 
ch1_introduction (2).ppt
ch1_introduction (2).pptch1_introduction (2).ppt
ch1_introduction (2).ppt
 
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
ch1_introduction.ppt
ch1_introduction.pptch1_introduction.ppt
ch1_introduction.ppt
 
Software Engineering and Introduction, Activities and ProcessModels
Software Engineering and Introduction, Activities and ProcessModels Software Engineering and Introduction, Activities and ProcessModels
Software Engineering and Introduction, Activities and ProcessModels
 
Ch1
Ch1Ch1
Ch1
 
Introduction to Software Engineering SE1
Introduction to Software Engineering SE1Introduction to Software Engineering SE1
Introduction to Software Engineering SE1
 
SOFTWARE ENGINEERING
SOFTWARE ENGINEERINGSOFTWARE ENGINEERING
SOFTWARE ENGINEERING
 
1
11
1
 
e-Business - SE trends
e-Business - SE trendse-Business - SE trends
e-Business - SE trends
 
What is software engineering
What is software engineeringWhat is software engineering
What is software engineering
 
SE 18CS35 Module 1.pdf
SE 18CS35 Module 1.pdfSE 18CS35 Module 1.pdf
SE 18CS35 Module 1.pdf
 

Más de arvind pandey

ADBMS ALL 2069-73 [CSITauthority.blogspot.com].pdf
ADBMS ALL 2069-73 [CSITauthority.blogspot.com].pdfADBMS ALL 2069-73 [CSITauthority.blogspot.com].pdf
ADBMS ALL 2069-73 [CSITauthority.blogspot.com].pdfarvind pandey
 
Internet service provider and network backbone
Internet service provider and network backboneInternet service provider and network backbone
Internet service provider and network backbonearvind pandey
 
Core java complete ppt(note)
Core java  complete  ppt(note)Core java  complete  ppt(note)
Core java complete ppt(note)arvind pandey
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering arvind pandey
 
Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes arvind pandey
 
Chapter1 computer introduction note
Chapter1  computer introduction note Chapter1  computer introduction note
Chapter1 computer introduction note arvind pandey
 
computer network fundamental note
computer network fundamental note computer network fundamental note
computer network fundamental note arvind pandey
 

Más de arvind pandey (12)

ADBMS ALL 2069-73 [CSITauthority.blogspot.com].pdf
ADBMS ALL 2069-73 [CSITauthority.blogspot.com].pdfADBMS ALL 2069-73 [CSITauthority.blogspot.com].pdf
ADBMS ALL 2069-73 [CSITauthority.blogspot.com].pdf
 
Syllabus.pdf
Syllabus.pdfSyllabus.pdf
Syllabus.pdf
 
Network entites
Network entitesNetwork entites
Network entites
 
Transport layer
Transport layerTransport layer
Transport layer
 
Internet service provider and network backbone
Internet service provider and network backboneInternet service provider and network backbone
Internet service provider and network backbone
 
Core java complete ppt(note)
Core java  complete  ppt(note)Core java  complete  ppt(note)
Core java complete ppt(note)
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering
 
Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes
 
Chapter1 computer introduction note
Chapter1  computer introduction note Chapter1  computer introduction note
Chapter1 computer introduction note
 
computer network fundamental note
computer network fundamental note computer network fundamental note
computer network fundamental note
 
I have a dream
I have a dreamI have a dream
I have a dream
 
brain.ppts
brain.pptsbrain.ppts
brain.ppts
 

Último

In - Vivo and In - Vitro Correlation.pptx
In - Vivo and In - Vitro Correlation.pptxIn - Vivo and In - Vitro Correlation.pptx
In - Vivo and In - Vitro Correlation.pptxAditiChauhan701637
 
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptxSandy Millin
 
How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17Celine George
 
HED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdfHED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdfMohonDas
 
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdfP4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdfYu Kanazawa / Osaka University
 
EBUS5423 Data Analytics and Reporting Bl
EBUS5423 Data Analytics and Reporting BlEBUS5423 Data Analytics and Reporting Bl
EBUS5423 Data Analytics and Reporting BlDr. Bruce A. Johnson
 
Riddhi Kevadiya. WILLIAM SHAKESPEARE....
Riddhi Kevadiya. WILLIAM SHAKESPEARE....Riddhi Kevadiya. WILLIAM SHAKESPEARE....
Riddhi Kevadiya. WILLIAM SHAKESPEARE....Riddhi Kevadiya
 
Vani Magazine - Quarterly Magazine of Seshadripuram Educational Trust
Vani Magazine - Quarterly Magazine of Seshadripuram Educational TrustVani Magazine - Quarterly Magazine of Seshadripuram Educational Trust
Vani Magazine - Quarterly Magazine of Seshadripuram Educational TrustSavipriya Raghavendra
 
Ultra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptxUltra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptxDr. Asif Anas
 
KARNAADA.pptx made by - saransh dwivedi ( SD ) - SHALAKYA TANTRA - ENT - 4...
KARNAADA.pptx  made by -  saransh dwivedi ( SD ) -  SHALAKYA TANTRA - ENT - 4...KARNAADA.pptx  made by -  saransh dwivedi ( SD ) -  SHALAKYA TANTRA - ENT - 4...
KARNAADA.pptx made by - saransh dwivedi ( SD ) - SHALAKYA TANTRA - ENT - 4...M56BOOKSTORE PRODUCT/SERVICE
 
A gentle introduction to Artificial Intelligence
A gentle introduction to Artificial IntelligenceA gentle introduction to Artificial Intelligence
A gentle introduction to Artificial IntelligenceApostolos Syropoulos
 
10 Topics For MBA Project Report [HR].pdf
10 Topics For MBA Project Report [HR].pdf10 Topics For MBA Project Report [HR].pdf
10 Topics For MBA Project Report [HR].pdfJayanti Pande
 
AUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptxAUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptxiammrhaywood
 
ARTICULAR DISC OF TEMPOROMANDIBULAR JOINT
ARTICULAR DISC OF TEMPOROMANDIBULAR JOINTARTICULAR DISC OF TEMPOROMANDIBULAR JOINT
ARTICULAR DISC OF TEMPOROMANDIBULAR JOINTDR. SNEHA NAIR
 
Unveiling the Intricacies of Leishmania donovani: Structure, Life Cycle, Path...
Unveiling the Intricacies of Leishmania donovani: Structure, Life Cycle, Path...Unveiling the Intricacies of Leishmania donovani: Structure, Life Cycle, Path...
Unveiling the Intricacies of Leishmania donovani: Structure, Life Cycle, Path...Dr. Asif Anas
 
How to Solve Singleton Error in the Odoo 17
How to Solve Singleton Error in the  Odoo 17How to Solve Singleton Error in the  Odoo 17
How to Solve Singleton Error in the Odoo 17Celine George
 
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRADUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRATanmoy Mishra
 
5 charts on South Africa as a source country for international student recrui...
5 charts on South Africa as a source country for international student recrui...5 charts on South Africa as a source country for international student recrui...
5 charts on South Africa as a source country for international student recrui...CaraSkikne1
 

Último (20)

In - Vivo and In - Vitro Correlation.pptx
In - Vivo and In - Vitro Correlation.pptxIn - Vivo and In - Vitro Correlation.pptx
In - Vivo and In - Vitro Correlation.pptx
 
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
 
How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17
 
HED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdfHED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdf
 
Finals of Kant get Marx 2.0 : a general politics quiz
Finals of Kant get Marx 2.0 : a general politics quizFinals of Kant get Marx 2.0 : a general politics quiz
Finals of Kant get Marx 2.0 : a general politics quiz
 
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdfP4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
 
EBUS5423 Data Analytics and Reporting Bl
EBUS5423 Data Analytics and Reporting BlEBUS5423 Data Analytics and Reporting Bl
EBUS5423 Data Analytics and Reporting Bl
 
Riddhi Kevadiya. WILLIAM SHAKESPEARE....
Riddhi Kevadiya. WILLIAM SHAKESPEARE....Riddhi Kevadiya. WILLIAM SHAKESPEARE....
Riddhi Kevadiya. WILLIAM SHAKESPEARE....
 
Vani Magazine - Quarterly Magazine of Seshadripuram Educational Trust
Vani Magazine - Quarterly Magazine of Seshadripuram Educational TrustVani Magazine - Quarterly Magazine of Seshadripuram Educational Trust
Vani Magazine - Quarterly Magazine of Seshadripuram Educational Trust
 
Ultra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptxUltra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptx
 
KARNAADA.pptx made by - saransh dwivedi ( SD ) - SHALAKYA TANTRA - ENT - 4...
KARNAADA.pptx  made by -  saransh dwivedi ( SD ) -  SHALAKYA TANTRA - ENT - 4...KARNAADA.pptx  made by -  saransh dwivedi ( SD ) -  SHALAKYA TANTRA - ENT - 4...
KARNAADA.pptx made by - saransh dwivedi ( SD ) - SHALAKYA TANTRA - ENT - 4...
 
A gentle introduction to Artificial Intelligence
A gentle introduction to Artificial IntelligenceA gentle introduction to Artificial Intelligence
A gentle introduction to Artificial Intelligence
 
10 Topics For MBA Project Report [HR].pdf
10 Topics For MBA Project Report [HR].pdf10 Topics For MBA Project Report [HR].pdf
10 Topics For MBA Project Report [HR].pdf
 
AUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptxAUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptx
 
ARTICULAR DISC OF TEMPOROMANDIBULAR JOINT
ARTICULAR DISC OF TEMPOROMANDIBULAR JOINTARTICULAR DISC OF TEMPOROMANDIBULAR JOINT
ARTICULAR DISC OF TEMPOROMANDIBULAR JOINT
 
Prelims of Kant get Marx 2.0: a general politics quiz
Prelims of Kant get Marx 2.0: a general politics quizPrelims of Kant get Marx 2.0: a general politics quiz
Prelims of Kant get Marx 2.0: a general politics quiz
 
Unveiling the Intricacies of Leishmania donovani: Structure, Life Cycle, Path...
Unveiling the Intricacies of Leishmania donovani: Structure, Life Cycle, Path...Unveiling the Intricacies of Leishmania donovani: Structure, Life Cycle, Path...
Unveiling the Intricacies of Leishmania donovani: Structure, Life Cycle, Path...
 
How to Solve Singleton Error in the Odoo 17
How to Solve Singleton Error in the  Odoo 17How to Solve Singleton Error in the  Odoo 17
How to Solve Singleton Error in the Odoo 17
 
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRADUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
 
5 charts on South Africa as a source country for international student recrui...
5 charts on South Africa as a source country for international student recrui...5 charts on South Africa as a source country for international student recrui...
5 charts on South Africa as a source country for international student recrui...
 

Unit 1-overview of software engineering

  • 1. “The beginning is the most important part of the work.” — Plato NHCE-MCA Software Engineering Concepts 1
  • 3. Unit Content 1. FAQs about software engineering 2 Professional and ethical responsibility2. Professional and ethical responsibility 3. Socio-technical Systems NHCE-MCA Software Engineering Concepts 3
  • 4. 1 FAQs about software engineering1. FAQs about software engineering NHCE-MCA Software Engineering Concepts 4
  • 5. FAQs about software engineering What is software? What is software engineering?What is software engineering? What is the difference between software engineering and computer science? What is the difference between software engineering and system engineering? What is a software process?What is a software process? What is a software process model? NHCE-MCA Software Engineering Concepts 5
  • 6. FAQs about software engineering What are the costs of software engineering? Wh t ft i i th d ?What are software engineering methods? What is CASE (Computer-Aided Software Engineering) What are the attributes of good software? What are the key challenges facing softwareWhat are the key challenges facing software engineering? NHCE-MCA Software Engineering Concepts 6
  • 7. What is software? Software is a (computing) written programs, procedures or rules and associated documentation pertaining to the operation of a computer system and that are stored in read/ write memory. NHCE-MCA Software Engineering Concepts 7
  • 8. What is software engineering? The IEEE Computer Society defines software engineering as The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of ft th t i th li ti f i i t ftsoftware; that is, the application of engineering to software. NHCE-MCA Software Engineering Concepts 8
  • 9. Difference of Software engineering and Computer science SoftwareSoftware engineeringengineering is concerned with the practicalitiespracticalities of developing and delivering useful software. ComputerComputer sciencescience is concerned with theorytheory and fundamentalsfundamentals;;fundamentalsfundamentals;; NHCE-MCA Software Engineering Concepts 9
  • 10. Difference of Software engineering and System engineering SoftwareSoftware engineeringengineering is part of this process concerned with developing the software infrastructure controlwith developing the software infrastructure, control, applications and databases in the system. SystemSystem engineeringengineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. NHCE-MCA Software Engineering Concepts 10
  • 11. What is a software process? A set of activities whose goal is the development or evolution of software. Generic activities in all software processes are: •• SpecificationSpecification - what the system should do and its•• SpecificationSpecification - what the system should do and its development constraints •• DevelopmentDevelopment - production of the software system •• ValidationValidation -- checking that the software is what the customer wants • Evolution changing the software in response to NHCE-MCA Software Engineering Concepts 11 • Evolution - changing the software in response to changing demands.
  • 12. What is a software process model? A simplified representation of a software process, presented from a specific perspective. Examples of process perspectives are • Workflow perspective - sequence of activities; • Data-flow perspective - information flow; • Role/action perspective - who does what. Generic process models • Waterfall; • Iterative development; • Component-based software engineering. NHCE-MCA Software Engineering Concepts 12 p g g
  • 13. What are the costs of software engineering? Costs vary depending on the type of system being developed and the requirements of system attributesdeveloped and the requirements of system attributes such as performanceperformance and systemsystem reliabilityreliability. Distribution of costs depends on the developmentdevelopment modelmodel that is used. For custom software, evolutionevolution costscosts often exceed developmentdevelopment costscostsdevelopmentdevelopment costscosts.. OtherOther costcost cancan bebe operationaloperational costcost ,maintenance,maintenance cost,cost, NHCE-MCA Software Engineering Concepts 13 tangibletangible cost,cost, intangibleintangible costcost
  • 14. What are software engineering methods? St t d h t ft d l t hi h i l d tStructured approaches to software development which include system models, notations, rules, design advice and process guidance. M d l d i tiModel descriptions • Descriptions of graphical models which should be produced; Rules • Constraints applied to system models; Recommendations • Advice on good design practice; Process guidance • What activities to follow. NHCE-MCA Software Engineering Concepts 14
  • 15. CASE (Computer-Aided Software Engineering) Software systems that are intended to provide automated support for software process activities. CASE systems are often used for method support. UpperUpper--CASECASE • Tools to support the early process activities of requirementsrequirements and design;design; LowerLower--CASECASE • Tools to support later activities such as programming,programming, debuggingdebugging and testing.testing. NHCE-MCA Software Engineering Concepts 15
  • 16. What are the attributes of good software? M i t i bilitMaintainability • Software must evolve to meet changing needs; Dependability • Software must be trustworthy; Efficiency • Software should not make wasteful use of system resources; Acceptability • Software must accepted by the users for which it was designed. This means it must be understandable, usable and compatible with other systems. NHCE-MCA Software Engineering Concepts 16
  • 17. What are the key challenges facing software engineering? Heterogeneity, delivery and trust. Heterogeneity • Developing techniques for building software that can cope with heterogeneous platforms and execution environments; Delivery • Developing techniques that lead to faster delivery of software; TrustTrust • Developing techniques that demonstrate that software can be trusted by its users NHCE-MCA Software Engineering Concepts 17 trusted by its users.
  • 18. 2 Professional2. Professional and Ethical responsibility NHCE-MCA Software Engineering Concepts 18
  • 19. Professional and ethical responsibility Software engineering involves wider responsibilities than simply the application ofresponsibilities than simply the application of technical skills. Software engineers must behave in an honesthonest and ethicallethically responsible way if they are to beand ethicallethically responsible way if they are to be respected as professionals. Ethical behaviour is more than simply upholding the law NHCE-MCA Software Engineering Concepts 19 the law.
  • 20. Issues of Professional Responsibility Confidentiality • Engineers should normally respect the confidentialityg y p y of their employers or clients irrespective of whether or not a formal confidentiality agreement has beenor not a formal confidentiality agreement has been signed. Competence • Engineers should not misrepresent their level ofEngineers should not misrepresent their level of competence. They should not knowingly accept work which is out with their competence NHCE-MCA Software Engineering Concepts 20 which is out with their competence.
  • 21. Issues of professional responsibility Intellectual property rights • Engineers should be aware of local laws governing the use ofEngineers should be aware of local laws governing the use of intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual property ofp p y employers and clients is protected. Computer misuseComputer misuse • Software engineers should not use their technical skills to misuse other people’s computers Computer misuse rangesmisuse other people s computers. Computer misuse ranges from relatively trivial (game playing on an employer’s machine, say) to extremely serious (dissemination of viruses). NHCE-MCA Software Engineering Concepts 21 y) y ( )
  • 22. ACM/IEEE Code of Ethics The professional societies in the US have cooperated to produce a code of ethical practiceproduce a code of ethical practice. The Code contains EightEight PrinciplesPrinciples related to the behaviour of and decisions made by professional software engineers, including practitioners, educators, managers, supervisors and policy makers, as well as trainees and students of the profession. NHCE-MCA Software Engineering Concepts 22
  • 23. Code of ethics - principles software engineers shall adhere to the following Eight Principles:software engineers shall adhere to the following Eight Principles: Public • Software engineers shall act consistently with the publicpublic interestinterest.. Client And Employer • Software engineers shall act in a manner that is in the best interestsinterests ofof theirtheir clientclient andand employeremployer consistent with the public interest. Product • Software engineers shall ensure that their products and related NHCE-MCA Software Engineering Concepts 23 g p modifications meet the highesthighest professionalprofessional standardsstandards possible.
  • 24. Code of ethics - principles Judgment • Software engineers shall maintain integrityintegrity and independenceindependence• Software engineers shall maintain integrityintegrity and independenceindependence in their professional judgment. M tManagement • Software engineering managersmanagers and leadersleaders shall subscribe to and promote an ethical approach to the management of software development and maintenance. Profession • Software engineers shall advance the integrityintegrity and reputationreputation of NHCE-MCA Software Engineering Concepts 24 the profession consistent with the public interest.
  • 25. Code of ethics - principles Colleagues • Software engineers shall be fairfair to and supportivesupportive of• Software engineers shall be fairfair to and supportivesupportive of their colleagues. Self • Software engineers shall participate in lifelonglifelongSoftware engineers shall participate in lifelonglifelong learninglearning regardingregarding thethe practicepractice of their profession d h ll t thi l h t th tiand shall promote an ethical approach to the practice of the profession. NHCE-MCA Software Engineering Concepts 25
  • 26. 3 Socio technical Systems3. Socio-technical Systems NHCE-MCA Software Engineering Concepts 26
  • 27. Topics covered To explain what a sociosocio--technicaltechnical systemsystem is and the distinction between this and a computer-based systembetween this and a computer based system To introduce the concept of emergentemergent systemsystem propertiesproperties such as reliability and securityreliability and security To explain systemsystem engineeringengineering and system procurement processes To explain why the organisationalorganisational contextcontext ofof aa systemsystem affects itsTo explain why the organisationalorganisational contextcontext ofof aa systemsystem affects its design and use To discuss legacylegacy systemssystems and why these are critical to manyTo discuss legacylegacy systemssystems and why these are critical to many businesses NHCE-MCA Software Engineering Concepts 27
  • 28. What is a system? A purposeful collection of interinter--relatedrelated components working together to achieveachieve some common objectiveworking together to achieveachieve some common objective. A system may include software, mechanical, electrical and electronic hardware and be operated by people. NHCE-MCA Software Engineering Concepts 28
  • 29. Components of ( an Information)System NHCE-MCA Software Engineering Concepts 29
  • 30. System categories Technical computer-based systems • Systems that include hardware and software but where the• Systems that include hardware and software but where the operatorsoperators and operationaloperational processesprocesses are not normally considered to be part of the system The system is not self-considered to be part of the system. The system is not self aware. Socio technical systemsSocio-technical systems • Systems that include technical systems but also operationaloperational d ll h d i t t ith th t h i lt h i lprocessesprocesses and peoplepeople who use and interact with the technicaltechnical systemsystem.. Socio-technical systems are governed by organisational policies and rules NHCE-MCA Software Engineering Concepts 30 organisational policies and rules.
  • 31. Socio-technical system characteristics EmergentEmergent propertiesproperties • Properties of the systemsystem ofof aa wholewhole that depend on the system components and their relationships. NonNon--deterministicdeterministic • They do not always produce the same output when presented with the same input because the systems' behaviour is partially dependent on human operators. ComplexComplex relationshipsrelationships withwith organisationalorganisational objectivesobjectives • The extent to which the system supports organisational objectives does not just depend on the system itself. NHCE-MCA Software Engineering Concepts 31
  • 32. Emergent properties Properties of the systemsystem asas aa wholewhole rather than properties that can be derived from the properties ofproperties that can be derived from the properties of components of a system Emergent properties are a consequence of the relationships between system components They can therefore only be assessed and measured once the components have been integrated into a systemp g y NHCE-MCA Software Engineering Concepts 32
  • 33. Examples of emergent properties Property Description V l Th l f t (th t t l i d) i d di h thVolume The volume of a system (the total space occupied) varies depending on how the component assemblies are arranged and connected. Reliability System reliability depends on component reliability but unexpected interactions can cause new types of failure and therefore affect the reliability of the system. Security The security of the system (its ability to resist attack) is a complex property that cannot be easily measured. Attacks may be devised that were not anticipated byy y p y the system designers and so may defeat built-in safeguards. Repairability This property reflects how easy it is to fix a problem with the system once it has been discovered It depends on being able to diagnose the problem access thebeen discovered. It depends on being able to diagnose the problem, access the components that are faulty and modify or replace these components. Usability This property reflects how easy it is to use the system. It depends on the NHCE-MCA Software Engineering Concepts 33 technical system components, its operators and its operating environment.
  • 34. Types of emergent property FunctionalFunctional propertiesproperties • These appear when all the parts of a systemsystem workwork togethertogether to achieve some objective. NonNon--functionalfunctional emergentemergent propertiespropertiesgg p pp p • These relate to the behaviourbehaviour ofof thethe systemsystem in its operational environment. They are often critical for computer-basedy systems as failure to achieve some minimal defined level in these properties may make the system unusable. • Examples are reliability, performance, safety, and security. NHCE-MCA Software Engineering Concepts 34
  • 35. Systems engineering Specifying, designing, implementing, validating, deploying and maintaining socio-technical systems. Concerned with the services provided by the system, constraints on its construction and operation and the ways in which it is used.ways in which it is used. NHCE-MCA Software Engineering Concepts 35
  • 36. The system engineering process Software may have to compensate for hardware problems.p Inevitably involves engineers from different disciplines who must work togetherwho must work together • Much scope for misunderstanding here. • Different disciplines use a different vocabulary and much negotiation is required. NHCE-MCA Software Engineering Concepts 36
  • 37. The systems engineering process Requirements definition System decommissioning System design definition System evolution decommissioning Sub-system design System evolution System Sub-system development System installation System integration NHCE-MCA Software Engineering Concepts 37
  • 38. Inter-disciplinary involvement Electronic engineering Mechanical engineering Software engineering ATC systems engineering User interface engineering Structural engineering ATC systems engineering User interface design Structural engineering Electrical engineering Architecture Civil engineering engineeringengineering NHCE-MCA Software Engineering Concepts 38
  • 39. 1.System requirements definition Three types of requirement defined at this stage • Abstract functional requirements. Systemq y functions are defined in an abstract way. System properties Non functional requirements for• System properties. Non-functional requirements for the system in general are defined. • Undesirable characteristics. Unacceptable system behaviour is specified. Should also define overall organisational objectives for the system NHCE-MCA Software Engineering Concepts 39 the system.
  • 40. System requirements problems Complex systems are usually developed to address wicked problems • Problems that are not fully understood; Must anticipate hardware/communicationsMust anticipate hardware/communications developments over the lifetime of the system. Hard to define non-functional requirements (particularly) without knowing the component structure of the system. NHCE-MCA Software Engineering Concepts 40
  • 41. 2.System design process Partition Define sub-systemPartition requirements Define sub-system interfaces Identify sub-systems Specify sub-system functionality Assign requirements to sub-systems NHCE-MCA Software Engineering Concepts 41
  • 42. System design process Partition requirements • Organise requirements into related groupsOrganise requirements into related groups. Identify sub-systems • Identify a set of sub-systems which collectively can meet the system requirements. Assign requirements to sub-systems Specify sub system functionalitySpecify sub-system functionality. Define sub-system interfaces NHCE-MCA Software Engineering Concepts 42 • Critical activity for parallel sub-system development.
  • 43. System design problems Requirements partitioning to hardware, software and human components may involve a lot ofsoftware and human components may involve a lot of negotiation. Difficult design problems are often assumed to be readily solved using software. Hardware platforms may be inappropriate for software requirements so softwaresoftware mustmust compensatecompensateq pp forfor thisthis.. NHCE-MCA Software Engineering Concepts 43
  • 44. Requirements and design Requirements engineering and system design are inextricably linked. Constraints posed by the system’s environment and other systems limit design choices so the actual design toother systems limit design choices so the actual design to be used may be a requirement. I iti l d i b t t t thInitial design may be necessary to structure the requirements. NHCE-MCA Software Engineering Concepts 44
  • 45. Spiral model of requirements/design NHCE-MCA Software Engineering Concepts 45
  • 46. System modelling An architectural model presents an abstractabstract viewview of the sub-systems making up a systemy g p y May include major informationinformation flowsflows between sub- systemssystems Usually presented as a blockblock diagramdiagram May identify different types of functionalfunctional componentcomponent in the model NHCE-MCA Software Engineering Concepts 46
  • 48. Sub-system description Sub-system Description Movement sensors Detects movement in the rooms monitored by the system Door sensors Detects door opening in the external doors of the building Alarm controller Controls the operation of the systemAlarm controller Controls the operation of the system Siren Emits an audible warning when an intruder is suspected Voice synthesizer Synthesizes a voice message giving the location of the suspected intruder Telephone caller Makes external calls to notify security, the police, etc. NHCE-MCA Software Engineering Concepts 48
  • 49. ATC system architecture NHCE-MCA Software Engineering Concepts 49
  • 50. 3.Sub-system development Typically parallel projects developing the hardware, software and communications.hardware, software and communications. May involve some COTS (Commercial Off-the-Shelf) systems procurement.procurement. Lack of communication across implementation teams.teams. Bureaucratic and slow mechanism for proposing system changes means that the development scheduleproposing system changes means that the development schedule may be extended because of the need for rework. NHCE-MCA Software Engineering Concepts 50
  • 51. 4.System integration The process of putting hardware,hardware, softwasoftware and peoplepeople together to make a systempeoplepeople together to make a system. Should be tackled incrementallyincrementally so that sub-systems are integrated one at a time. InterfaceInterface problemsproblems between sub-systems are usually found at this stage. May be problems with uncoordinated deliveriesMay be problems with uncoordinated deliveries of system components. NHCE-MCA Software Engineering Concepts 51
  • 52. 5.System installation After completion, the system has to be installed in the t ’ i tcustomer’s environment • Environmental assumptions may be incorrect; • May be human resistance to the introduction of a new system; • System may have to coexist with alternative systems for some time; • May be physical installation problems (e.g. cabling problems); NHCE-MCA Software Engineering Concepts 52 • Operator training has to be identified.
  • 53. 6.System evolution Large systems have a long lifetime. They must evolve to meet changing requirements. Evolution is inherently costlyy y • Changes must be analysed from a technical and business perspective;perspective; • Sub-systems interact so unanticipated problems can arise; • There is rarely a rationale for original design decisions;• There is rarely a rationale for original design decisions; • System structure is corrupted as changes are made to it. NHCE-MCA Software Engineering Concepts 53
  • 54. 7.System decommissioning Taking the system out of service after its useful lifetime. May require removal of materials (e g dangerousMay require removal of materials (e.g. dangerous chemicals) which pollute the environment • Should be planned for in the system design by encapsulation. May require data to be restructured and converted to be used in some other system.y NHCE-MCA Software Engineering Concepts 54
  • 55. Organizations/people/systemsOrganizations/people/systems Socio-technical systems are organisational systems intended to help deliver some organisationalorganisational or businessbusiness goalgoal. If you do not understand the organisational environment where a system is used, the system is less likely to meetwhere a system is used, the system is less likely to meet the real needs of the business and its users. NHCE-MCA Software Engineering Concepts 55
  • 56. Human and organisational factors Process changes • Does the system require changes to the worky q g processes in the environment? Job changes • Does the system de-skill the users in an environment or cause them to change the way they work? O i ti l hOrganisational changes • Does the system change the political power structure in an organisation?an organisation? NHCE-MCA Software Engineering Concepts 56
  • 57. Organisational processes The processes of systems engineering overlap and interact with organisational procurementprocurement processesprocesses.. Operational processes are the processes involved in using the system for its intended purpose For newusing the system for its intended purpose. For new systems, these have to be defined as part of the system d idesign. Operational processes should be designed to be flexible and should notnot forceforce operationsoperations toto bebe donedone in a particular way. It is important that human operators can NHCE-MCA Software Engineering Concepts 57 p y p p use their initiative if problems arise.
  • 59. System procurement Acquiring a system for an organization to meet some need Some system specification and architectural design is usuallySome system specification and architectural design is usually necessary before procurement • You need a specification to let a contract for systemYou need a specification to let a contract for system development • The specification may allow you to buy a commercial off-the-The specification may allow you to buy a commercial off the shelf (COTS) system. Almost always cheaper than developing a system from scratch Large complex systems usually consist of a mix of off the shelf and specially designed components. The procurement processes for NHCE-MCA Software Engineering Concepts 59 these different types of component are usually different.
  • 60. The system procurement process ChooseIssue requestChooseAdapt Off-the-shelf system available Choose supplier Issue request for bids Choose system Adapt requirements Survey market forSurvey market for existing systems Let contract forNegotiateSelectIssue request Let contract for development Negotiate contract Select tender Issue request to tender Custom system required NHCE-MCA Software Engineering Concepts 60
  • 61. Procurement issues Requirements may have to be modified to match the capabilities of off-the-shelf components. The requirements specification may be part of theq p y p contract for the development of the system. Th i ll t t ti ti i d tThere is usually a contract negotiation period to agree changes after the contractor to build a system has been selected. NHCE-MCA Software Engineering Concepts 61
  • 62. Contractors and sub-contractors The procurement of large hardware/software systems is usually based around some principal contractor. Sub-contracts are issued to other suppliers to supplypp pp y parts of the system. C t li ith th i i l t t d dCustomer liases with the principal contractor and does not deal directly with sub-contractors. NHCE-MCA Software Engineering Concepts 62
  • 64. Legacy systemsLegacy systems Socio-technical systems that have been developed using old or obsolete technology. Crucial to the operation of a business and it is often too risky to discard these systems • Bank customer accounting system; • Aircraft maintenance system. Legacy systems constrain new business processes and consume a high proportion of company budgets. NHCE-MCA Software Engineering Concepts 64
  • 65. Legacy system components Hardware - may be obsolete mainframe hardware. Support software - may rely on support software from suppliers who are no longer in business. Application software - may be written in obsolete programming languages. Application data - often incomplete and inconsistent. Business processes - may be constrained by software structure and functionality. Business policies and rules - may be implicit and embedded in the system software. NHCE-MCA Software Engineering Concepts 65
  • 66. Chapter Review Questions 1. What are the difference between generic software product development and custom software development? 2 Describe important attribute which all software product should have2. Describe important attribute which all software product should have. 3. What is the difference between a software process model and a software process? 4.4. SuggestSuggest in which way a Software process model might be helpful in identifying possible process improvement. 5 Di th i i i ft i i f i l thi /5. Discuss the various issues in software engineering professional ethics/ responsibility. 6. Explain ACM/IEEE code of ethics and suggest an appropriate example that6 p a C / code o et cs a d suggest a app op ate e a p e t at illustrates that clause. 7. Discuss in detail systemsystem engineeringengineering processprocess with example. NHCE-MCA Software Engineering Concepts 66 8. Explain system procurement process. 9. Explain why legacy systems may be critical to the operation of a business.
  • 67. First Class Test Questions 1. Explain ACM/IEEE code of ethics and suggest an appropriate example that illustrates that clause. 2. Discuss in detail system engineering process with example. 3. Explain system procurement process. 4. Explain why legacy systems may be critical to the operation of a business. 5 Suggest in which way a Software process model might be5. Suggest in which way a Software process model might be helpful in identifying possible process improvement. Test Date: 26-02-2010 Time: 3.00-3.45pm NHCE-MCA Software Engineering Concepts 67 e 3 00 3 5p Note: Out of five questions any three questions will be asked to write the test but students should study all the questions