SlideShare a Scribd company logo
INTRODUCTION
TO SOFTWARE
ENGINEERING
ABSTRACT
This file contains the lectures of the subject
“Introduction to Software Engineering” delivered
to BSCS 3rd
Aqeel Rafique
Software Engineering
Software:
Software is the set of executable instructions that are written to achieve some desired
output, the data structure that enables the instructions to properly perform some action and the
documentation which explain about all aspect of software.
Documentation:
Documentation involves the following.
I. Technical manual
II. User manual
Technical manual:
It is writer for technical people. It contains all the technical information related to the
software.
User manual:
It is written for the users. It contains the information related to software functionality and
benefits.
Characteristics of software:
I. Software is not manufactures because it is a logical stuff, we must use develop or engineer
like word.
II. Software does not wear out/ expired.
III. The main characteristics of a software is reusability.
Note:
There are two approaches to analyze, design or program something.
I. Structure
II. Object oriented
Feature of software:
I. User friendly
II. Reliable
III. Accurate
IV. Reusability
V. Secure
VI. Efficient
Software myths:
The misconception and erroneous beliefs about the software are called software myths.
I. Management myths
II. Customer myths
III. Practitioner’s myths
Software process model:
The steps that are followed to develop a software are called software process model.
Waterfall process model/classical life cycle/sequential process model:
Waterfall process model
System engineering:
System engineering is a document the contains information about
I. Software
II. Hardware
III. Human
These information are either relevant or may be irrelevant.
The process of obtaining relevant information from the system engineering is called analysis.
Modelling the analyzed information is called designing. Designing is performed to better understand
the analyzed information. Coding is the process of converting the model into a programming language.
Implementation is the collection of codes that are developed by different people. Maintenance is the
modification in the software without changing the basic structure.
Advantages:
I. Simple and easy to use.
II. Each phase has specific deliverable.
III. Less time consuming in general.
IV. Best for short time projects (1-6 month)
Disadvantages:
I. Time consuming of problem occur.
II. Doesn’t reflect iterative nature if exploratory development.
III. Unrealistic to expect accurate requirements so early in project.
IV. Difficult to integrate risk management.
V. Difficult and expensive to make changes to document.
VI. Costly for small teams and projects.
4 P’s of software development:
I. People
II. Process
III. Project
IV. Product
These are the four key elements in software engineering. Almost every topic on the field of
software engineering can be categories into one of them. So none of the 4 P’s may be omitted in
software engineering. The 4 P’s concept is an important approach as it give a large platform and a
comprehensive learning for software engineering students. The early build-up of basic concept of the
4 P’s and their relationship allow student to easily map each activity in the project to the related
concept and actively participate in those activities. A common concern is how the project can be
finished and how the required principle of software engineering and the knowledge can be learned at
the sometime. The major P is product as all other three Ps is learned through various activities in
developing the product.
Prototype process model:
Prototype Process model
Advantages:
I. The user can suggest changes and modifications when prototype is shown to him.
II. Best for non-IT literate people.
III. The client can judge the capabilities of developer.
IV. It reduce the risk of failure, as potential risk can be identified early and mitigation steps can
be taken.
V. Iteration between development team and client provides a very good and conductive
environment during project.
Disadvantages:
I. Prototype is done at the cost of developer.
II. Sometimes the prototype model is of no use after showing to the client.
III. It is a slow process.
IV. Too much involvement of client is not always preferred by the developer.
V. Too many changes can be disturb the rhythm of the development team.
Spiral process model:
Advantages:
I. High amount if risk analysis.
II. Good for large and mission critical projects.
III. Software is produced early in the software life cycle.
Disadvantages:
I. It can be a costly model to use.
II. Risk analysis required highly specific expertise.
III. Projects success is highly dependent on the risk analysis phase.
IV. Doesn’t work well for smaller projects.
Spiral process model
Risk analysis (types of risks):
I. Technical risk
II. Business risk
III. Customer risk
Risk management:
I. Identify the risk
II. Avoid the risk
III. If not avoided then try to minimize its effect.
Win-Win spiral model:
The win-win spiral model uses the theory (win-win) approach to coverage on a system’s next-
level objectives, constraints and alternatives. This theory approach involve identifying the system’s
stakeholders and their win conditions and using negotiation process to determine a mutually
satisfactory set of objectives, constraints and alternatives for the stakeholders.
It has the following steps:
I. Determine objectives
II. Determine constraints
III. Identify and evaluate alternatives
IV. Cycle though the spiral
Advantages:
I. The customer and the developer both are in winning condition.
II. It provides a satisfactory environment to the customer.
III. The win-win result is achieved in initial steps.
Disadvantages:
The RAD Model:
Rapid Application Development (RAD) is an incremental software development process model
that emphasizes an extremely short development cycle. The RAD model is a high speed adaption of
the linear sequential model in which rapid development is achieved by using component-based
construction. The tasks of the project are assigned to different teams in this way the development is
done rapidly.
RAD
Advantages:
I. It is extremely short development cycle.
II. Automated tools are used in the development.
III. The project can be completed in 60-90 days.
IV. There is more creativity is present in this model as different teams have different experts.
Disadvantages:
I. More resources are required.
II. It requires committed developer teams to achieve the goal within time.
III. RAD is not appropriate when technical risks are high.
IV. A large budget is required.
4th
Generation Techniques:
The team 4th
generation techniques (4GT) encompasses a broad array of software tools that
have one thing in common, each enable a software engineering to specify some characteristics of the
software at a high level. The tool then automatically generates sources code based on the developer’s
specification.
It focuses on the ability to specify software using specialized form or graphics notation that
describes the problem to be solved in term that the customer can understand. The drag and drop
policy is used.
Front page is an example of this types of tool.
Advantages:
I. It is time saving.
II. There is no need of coding like procedural languages.
III. It is a rapid approach.
IV. It is more efficient for small projects.
Disadvantages:
I. It is costly.
II. It is a bit difficult.
III. It requires more software development activities.
IV. Without designing it will cause the same problem as encountered by conventional
approaches.
Project management:
Project management is a layer starts before the technical things has started and ends after
the technical things ended.
Timeline
Factor that involved in project management:
I. Scope of the project.
II. The risk to be incurred.
III. Task to be accomplished.
IV. The required resources.
V. Milestone to be tracked. (Time management i.e. timeline)
VI. Cost to be expended (money management)
VII. The schedule to be followed.
VIII. Realistic breakdown of tasks. (It means divide the whole team into parts and assign the tasks
and then combine them).
IX. Objective information
Software engineering definitions
Definition 1:
Software engineering is multi-person development of multi-version software. Multi-person
mean the whole project team.
Definition 2:
It is a sequence of different activities like any other engineering process in which we have
technical and managerial skills involved at the same time.
Definition 3:
The establishment & use of sound engineering principles to obtain economical software that
is reliable.
Software Risks:
Risk always involve two characteristics.
I. Uncertainty
II. Loss
Uncertainty:
It means that risks may or may not happen. There is no 100 % probable risks.
Loss:
If the risks becomes a reality then unwanted losses will occur.
Types of risks:
I. Technical risk
II. Business risk
III. Customer’s risk
Technical risk:
Technical risk threaten the quality and timeliness of the software to be produced. If a
technical risk becomes a reality, then implementation may become difficult of impossible. Technical
risk identify potential design and implementation, interface, verification and maintenance problems.
Technical risk occur because the problem is harder to solve than we thought it would be.
Business risk:
Business risks threaten the capability/feasibility of the software to be built. These risks are
often dangers for project or product.
Business risk are as follows:
I. Market risk
II. Strategic risk
III. Managerial risk
IV. Budget risk
Customer’s risk:
Customer’s risk is also a factor that can become an issue for the project manager, sometimes
customer refuse to pay the already settled amount to follow the timeline and discuss the things with
customer and take payment time to time and more than the work done. Legal agreement must be
there to avoid any type of risk like this one.
Resources:
It is a software planning task for estimation of the resources required to accomplish the
software development effort. The hardware and software resources sits the foundation of the
development efforts. At a higher level, we encounter reusable software components, software
building blocks that can dramatically reduce development costs and accelerate delivery. People are
the primary resources.
Resources are of two types:
I. Human resources
II. Software resources
III. Hardware resources
Human resources:
The planner begins by evaluating scope and selecting the skills required to complete
development. For small projects (one person – one year or less) a single individual may performed all
software engineering tasks, consulting with specialists as required. The number of people required
for a software project can be determined only after an estimate of development effort is made.
Software resources:
The existing software and software building blocks that are reused in the development are
called components.
These are four in numbers:
I. Off the shelf components
II. Full experience components
III. Partial experience components
IV. New components
Hardware resources:
Hardware provide a platform that supports the tools required in development. When a
computer based system is to be engineered, the software team may require access to hardware
elements being developed by other engineering teams. Each hardware element must be specified by
the software project planner.
Umbrella activities:
These are project management activities. These activities start as the project starts and end
with the project end.
Umbrella Activities
The umbrella activities are as follows:
I. Project tracking
II. FTR (Formal Technical Review)
III. Risk management
IV. Quality assurance
V. Documentation
Project tracking:
In this stage the following activities are done
I. First of all the schedule is tracked.
II. Then the weightage of work is checked either the goal is completed or not.
III. Project details are discussed i.e.: members, communication infrastructure and cost
establishment.
IV. Task level details are defined such as: manager and members, assigning roles,
identifying task resources, identifying task deliverables, task progress and task level
costing.
V. Generating reports about: project progress, task progress. Schedule if slipping and
about the schedule delay impacts.
FTR (Formal Technical Review):
It is a technical meeting of all managers and project members. In this the following things
are done.
I. Conflicting issues are discussed.
II. Faults are identified
III. Solutions are proposed.
IV. Plan is modified.
Quality assurance:
At this stage the following steps are taken
I. Correctness
II. Completeness
III. Flexibility
IV. Maintainability
V. Testing
Documentation:
At each and every step the answer of these questions must be documented
I. What is to be done?
II. What has been done?
III. How has been done?
IV. What problems were faced?
Risk management:
At this stage do the following
I. Identify the risk
II. Avoid the risk
III. If not then minimize the effects.
Requirement analysis process:
Requirement Analysis Cycle
Requirement engineering:
Categories of requirements:
I. Functional requirements
II. Non-functional requirements
III. Interface requirements
Functional requirement:
Functional requirement are the primary and main requirements that a system must provide.
These are the basic services for which the system is being developed.
Non-functional requirement:
These are other than actual requirement. These are for making the system more efficient
and to build up the customer’s trust on the expertness of engineer. These requirement are
I. Reliability
II. Efficiency
III. Portability
IV. Privacy
V. Ethical
VI. Safety
VII. Standards
VIII. Delivery
Interface requirement:
These are the requirements related to the outlook of the system. Sometimes these are also
provided by customer but in most case these are the domain knowledge base requirements of the
engineer. These are as follows
I. Color scheme
II. Buttons
III. Tools used
IV. Banners
V. Foreground color
VI. Background color
VII. Animations
Hardware engineering:
The selection of some combinations of hardware components to manufacture a new
hardware is known as hardware engineering.
Selection characteristics:
I. Components packed as an individual building block.
II. Interface amongst themselves is standardized (standardized means acceptable for all).
III. Off the shelf alternatives (available anywhere)
IV. Cost
V. Performance
VI. Reliability
Phases of hardware engineering:
There are three phases of hardware engineering
I. Planning and specification
II. Design and prototype implementation (bread board design)
III. Manufacturing, distribution and field services.
Human engineering:
It is a multi-disciplinary activity that applies knowledge derived from psychology and
technology to specify and design high quality HCL (Human Computer interface)
Characteristics that affect human engineering.
I. Human memory and knowledge representation:
i. Short term memory
ii. Long term memory
II. Visual perceptions:
Every user like different types of interface. It should be developed by considering
each user.
III. Human dialog construction:
The statements related to dialog boxes that appear on the screen. It should be
standardized mean it should easily understand by all users.
System engineering:
System engineering focuses on a verity of elements, then analyzing, designing and organizing
these elements into a system that can be a product, services or a technology for the transformation
of information or control.
System engineering diagram
Analysis modelling:
It uses a combination of text and diagrammatic forms to depict requirement for data,
functions and behavior in a way that is relatively easy to understand and more importantly straight
forward to review for correctness, completeness and consistency.
Analysis Modeling
ERD is related to data
DFD is related to function
STD is related to control or behavior.
STD:
For state
For method, data flow
For loop
State: state is any observable mode of behavior.

More Related Content

PPT
Slides chapters 21-23
DOCX
Notes of Software engineering and Project Management
PPTX
Quality and productivity factors
PDF
Soft engg introduction and process models
DOCX
Spm unit 2
DOCX
process models- software engineering
DOCX
PPT
Software System Engineering - Chapter 2
Slides chapters 21-23
Notes of Software engineering and Project Management
Quality and productivity factors
Soft engg introduction and process models
Spm unit 2
process models- software engineering
Software System Engineering - Chapter 2

What's hot (20)

PPTX
Software engineering principles in system software design
PPTX
Software Engineering - Lecture 02
PPTX
Software Project Management - NESDEV
PPTX
Software Engineering- Engineering Practice
PPTX
Lect3 conventional vs modern spm
PDF
What Is the Rational Unified Process
PDF
7 5-94-101
PPTX
Software Engineering by Pankaj Jalote
PPTX
Process model in SE
PPTX
Lecture 02 Software Process Model
PDF
INTRODUCTION TO SOFTWARE ENGINEERING
PDF
Software systems engineering PRINCIPLES
PPTX
Lect2 conventional software management
PPTX
Process and Project Metrics-1
PPT
Slides chapter 15
PDF
Software engineering a practitioners approach 8th edition pressman solutions ...
PPT
Slides chapters 24-25
PDF
Software engineering note
PDF
Introduction to software engineering
PDF
Spm tutorials
Software engineering principles in system software design
Software Engineering - Lecture 02
Software Project Management - NESDEV
Software Engineering- Engineering Practice
Lect3 conventional vs modern spm
What Is the Rational Unified Process
7 5-94-101
Software Engineering by Pankaj Jalote
Process model in SE
Lecture 02 Software Process Model
INTRODUCTION TO SOFTWARE ENGINEERING
Software systems engineering PRINCIPLES
Lect2 conventional software management
Process and Project Metrics-1
Slides chapter 15
Software engineering a practitioners approach 8th edition pressman solutions ...
Slides chapters 24-25
Software engineering note
Introduction to software engineering
Spm tutorials
Ad

Viewers also liked (20)

DOCX
Software Engineering Assignment
DOCX
Software engineering Questions and Answers
PPTX
Types of computer
PPTX
software project management
PDF
Software Engineering Sample Question paper for 2012
PPT
Assignment 2nd(sdlc)id-17
PDF
All Database Design Tuts V1.3
PPTX
Software Project Management Slide
DOC
An Introduction to Project management(project management tutorials)
PPT
Project managemen concept
PPT
Software Project Management (lecture 2)
PPT
Software Project Management
PPTX
Methodologies of Software Engineering
PPTX
CSC426 - Software Engineering Lecture Note
PDF
Spectrum Software Management
PPTX
CSC426 - Software Engineering Lecture Note Cont'd
PPT
Aula 1 - Project Management Concepts by Roger Pressman
PPSX
Maria Managment Spectrum
PPTX
Software Project Management
PPTX
Requirements Engineering (CS 5032 2012)
Software Engineering Assignment
Software engineering Questions and Answers
Types of computer
software project management
Software Engineering Sample Question paper for 2012
Assignment 2nd(sdlc)id-17
All Database Design Tuts V1.3
Software Project Management Slide
An Introduction to Project management(project management tutorials)
Project managemen concept
Software Project Management (lecture 2)
Software Project Management
Methodologies of Software Engineering
CSC426 - Software Engineering Lecture Note
Spectrum Software Management
CSC426 - Software Engineering Lecture Note Cont'd
Aula 1 - Project Management Concepts by Roger Pressman
Maria Managment Spectrum
Software Project Management
Requirements Engineering (CS 5032 2012)
Ad

Similar to Software engineering (20)

PPTX
Software engineering (Unit-1 Introduction)
PPTX
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
PDF
ppt_se.pdf
PPT
Introduction,Software Process Models, Project Management
PPTX
Software engineering Computer science and engineering unit 1 remaining part ...
PPTX
Software engineering ppt it will be useful for the people
PDF
The Nature of Software and Software Engineering ppt.pdf
DOCX
software engineering
PDF
Software Engineering Basics.pdf
PPTX
20CS4103 SE UNIT 1-1.pptx software engineering
PPTX
Software engineering Computer science and engineering unit 1
PPTX
unit 1 introudction of the file and sepm
PPT
Unit1
PDF
Software engineering BCA programming it is simple manufacturer was in to a ho...
PPTX
Software process is tge helpful for software engineer
PDF
Software engineering jwfiles 3
PPTX
Software Development Life Cycle
PPT
Software engineering introduction
PPTX
Object Oriented Software engineering.pptx
PDF
SE_chap1.pdf
Software engineering (Unit-1 Introduction)
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.pdf
Introduction,Software Process Models, Project Management
Software engineering Computer science and engineering unit 1 remaining part ...
Software engineering ppt it will be useful for the people
The Nature of Software and Software Engineering ppt.pdf
software engineering
Software Engineering Basics.pdf
20CS4103 SE UNIT 1-1.pptx software engineering
Software engineering Computer science and engineering unit 1
unit 1 introudction of the file and sepm
Unit1
Software engineering BCA programming it is simple manufacturer was in to a ho...
Software process is tge helpful for software engineer
Software engineering jwfiles 3
Software Development Life Cycle
Software engineering introduction
Object Oriented Software engineering.pptx
SE_chap1.pdf

Recently uploaded (20)

PDF
Pre independence Education in Inndia.pdf
PDF
The Final Stretch: How to Release a Game and Not Die in the Process.
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
01-Introduction-to-Information-Management.pdf
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PDF
BÀI TẬP TEST BỔ TRỢ THEO TỪNG CHỦ ĐỀ CỦA TỪNG UNIT KÈM BÀI TẬP NGHE - TIẾNG A...
PDF
Basic Mud Logging Guide for educational purpose
PPTX
Open Quiz Monsoon Mind Game Prelims.pptx
PPTX
Week 4 Term 3 Study Techniques revisited.pptx
PPTX
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
PPTX
COMPUTERS AS DATA ANALYSIS IN PRECLINICAL DEVELOPMENT.pptx
PDF
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Pre independence Education in Inndia.pdf
The Final Stretch: How to Release a Game and Not Die in the Process.
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
2.FourierTransform-ShortQuestionswithAnswers.pdf
PPH.pptx obstetrics and gynecology in nursing
O7-L3 Supply Chain Operations - ICLT Program
01-Introduction-to-Information-Management.pdf
Renaissance Architecture: A Journey from Faith to Humanism
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
BÀI TẬP TEST BỔ TRỢ THEO TỪNG CHỦ ĐỀ CỦA TỪNG UNIT KÈM BÀI TẬP NGHE - TIẾNG A...
Basic Mud Logging Guide for educational purpose
Open Quiz Monsoon Mind Game Prelims.pptx
Week 4 Term 3 Study Techniques revisited.pptx
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
COMPUTERS AS DATA ANALYSIS IN PRECLINICAL DEVELOPMENT.pptx
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx

Software engineering

  • 1. INTRODUCTION TO SOFTWARE ENGINEERING ABSTRACT This file contains the lectures of the subject “Introduction to Software Engineering” delivered to BSCS 3rd Aqeel Rafique Software Engineering
  • 2. Software: Software is the set of executable instructions that are written to achieve some desired output, the data structure that enables the instructions to properly perform some action and the documentation which explain about all aspect of software. Documentation: Documentation involves the following. I. Technical manual II. User manual Technical manual: It is writer for technical people. It contains all the technical information related to the software. User manual: It is written for the users. It contains the information related to software functionality and benefits. Characteristics of software: I. Software is not manufactures because it is a logical stuff, we must use develop or engineer like word. II. Software does not wear out/ expired. III. The main characteristics of a software is reusability. Note: There are two approaches to analyze, design or program something. I. Structure II. Object oriented Feature of software: I. User friendly II. Reliable III. Accurate IV. Reusability V. Secure VI. Efficient Software myths: The misconception and erroneous beliefs about the software are called software myths. I. Management myths II. Customer myths III. Practitioner’s myths Software process model: The steps that are followed to develop a software are called software process model.
  • 3. Waterfall process model/classical life cycle/sequential process model: Waterfall process model System engineering: System engineering is a document the contains information about I. Software II. Hardware III. Human These information are either relevant or may be irrelevant. The process of obtaining relevant information from the system engineering is called analysis. Modelling the analyzed information is called designing. Designing is performed to better understand the analyzed information. Coding is the process of converting the model into a programming language. Implementation is the collection of codes that are developed by different people. Maintenance is the modification in the software without changing the basic structure. Advantages: I. Simple and easy to use. II. Each phase has specific deliverable. III. Less time consuming in general. IV. Best for short time projects (1-6 month) Disadvantages: I. Time consuming of problem occur. II. Doesn’t reflect iterative nature if exploratory development. III. Unrealistic to expect accurate requirements so early in project. IV. Difficult to integrate risk management. V. Difficult and expensive to make changes to document. VI. Costly for small teams and projects.
  • 4. 4 P’s of software development: I. People II. Process III. Project IV. Product These are the four key elements in software engineering. Almost every topic on the field of software engineering can be categories into one of them. So none of the 4 P’s may be omitted in software engineering. The 4 P’s concept is an important approach as it give a large platform and a comprehensive learning for software engineering students. The early build-up of basic concept of the 4 P’s and their relationship allow student to easily map each activity in the project to the related concept and actively participate in those activities. A common concern is how the project can be finished and how the required principle of software engineering and the knowledge can be learned at the sometime. The major P is product as all other three Ps is learned through various activities in developing the product. Prototype process model: Prototype Process model Advantages: I. The user can suggest changes and modifications when prototype is shown to him. II. Best for non-IT literate people. III. The client can judge the capabilities of developer. IV. It reduce the risk of failure, as potential risk can be identified early and mitigation steps can be taken. V. Iteration between development team and client provides a very good and conductive environment during project. Disadvantages: I. Prototype is done at the cost of developer. II. Sometimes the prototype model is of no use after showing to the client. III. It is a slow process. IV. Too much involvement of client is not always preferred by the developer. V. Too many changes can be disturb the rhythm of the development team.
  • 5. Spiral process model: Advantages: I. High amount if risk analysis. II. Good for large and mission critical projects. III. Software is produced early in the software life cycle. Disadvantages: I. It can be a costly model to use. II. Risk analysis required highly specific expertise. III. Projects success is highly dependent on the risk analysis phase. IV. Doesn’t work well for smaller projects. Spiral process model Risk analysis (types of risks): I. Technical risk II. Business risk III. Customer risk Risk management: I. Identify the risk II. Avoid the risk III. If not avoided then try to minimize its effect. Win-Win spiral model: The win-win spiral model uses the theory (win-win) approach to coverage on a system’s next- level objectives, constraints and alternatives. This theory approach involve identifying the system’s stakeholders and their win conditions and using negotiation process to determine a mutually satisfactory set of objectives, constraints and alternatives for the stakeholders. It has the following steps: I. Determine objectives II. Determine constraints III. Identify and evaluate alternatives IV. Cycle though the spiral Advantages: I. The customer and the developer both are in winning condition. II. It provides a satisfactory environment to the customer. III. The win-win result is achieved in initial steps.
  • 6. Disadvantages: The RAD Model: Rapid Application Development (RAD) is an incremental software development process model that emphasizes an extremely short development cycle. The RAD model is a high speed adaption of the linear sequential model in which rapid development is achieved by using component-based construction. The tasks of the project are assigned to different teams in this way the development is done rapidly. RAD Advantages: I. It is extremely short development cycle. II. Automated tools are used in the development. III. The project can be completed in 60-90 days. IV. There is more creativity is present in this model as different teams have different experts. Disadvantages: I. More resources are required. II. It requires committed developer teams to achieve the goal within time. III. RAD is not appropriate when technical risks are high. IV. A large budget is required. 4th Generation Techniques: The team 4th generation techniques (4GT) encompasses a broad array of software tools that have one thing in common, each enable a software engineering to specify some characteristics of the software at a high level. The tool then automatically generates sources code based on the developer’s specification. It focuses on the ability to specify software using specialized form or graphics notation that describes the problem to be solved in term that the customer can understand. The drag and drop policy is used. Front page is an example of this types of tool.
  • 7. Advantages: I. It is time saving. II. There is no need of coding like procedural languages. III. It is a rapid approach. IV. It is more efficient for small projects. Disadvantages: I. It is costly. II. It is a bit difficult. III. It requires more software development activities. IV. Without designing it will cause the same problem as encountered by conventional approaches. Project management: Project management is a layer starts before the technical things has started and ends after the technical things ended. Timeline Factor that involved in project management: I. Scope of the project. II. The risk to be incurred. III. Task to be accomplished. IV. The required resources. V. Milestone to be tracked. (Time management i.e. timeline) VI. Cost to be expended (money management) VII. The schedule to be followed. VIII. Realistic breakdown of tasks. (It means divide the whole team into parts and assign the tasks and then combine them). IX. Objective information Software engineering definitions Definition 1: Software engineering is multi-person development of multi-version software. Multi-person mean the whole project team. Definition 2: It is a sequence of different activities like any other engineering process in which we have technical and managerial skills involved at the same time. Definition 3: The establishment & use of sound engineering principles to obtain economical software that is reliable.
  • 8. Software Risks: Risk always involve two characteristics. I. Uncertainty II. Loss Uncertainty: It means that risks may or may not happen. There is no 100 % probable risks. Loss: If the risks becomes a reality then unwanted losses will occur. Types of risks: I. Technical risk II. Business risk III. Customer’s risk Technical risk: Technical risk threaten the quality and timeliness of the software to be produced. If a technical risk becomes a reality, then implementation may become difficult of impossible. Technical risk identify potential design and implementation, interface, verification and maintenance problems. Technical risk occur because the problem is harder to solve than we thought it would be. Business risk: Business risks threaten the capability/feasibility of the software to be built. These risks are often dangers for project or product. Business risk are as follows: I. Market risk II. Strategic risk III. Managerial risk IV. Budget risk Customer’s risk: Customer’s risk is also a factor that can become an issue for the project manager, sometimes customer refuse to pay the already settled amount to follow the timeline and discuss the things with customer and take payment time to time and more than the work done. Legal agreement must be there to avoid any type of risk like this one. Resources: It is a software planning task for estimation of the resources required to accomplish the software development effort. The hardware and software resources sits the foundation of the development efforts. At a higher level, we encounter reusable software components, software building blocks that can dramatically reduce development costs and accelerate delivery. People are the primary resources. Resources are of two types: I. Human resources II. Software resources III. Hardware resources
  • 9. Human resources: The planner begins by evaluating scope and selecting the skills required to complete development. For small projects (one person – one year or less) a single individual may performed all software engineering tasks, consulting with specialists as required. The number of people required for a software project can be determined only after an estimate of development effort is made. Software resources: The existing software and software building blocks that are reused in the development are called components. These are four in numbers: I. Off the shelf components II. Full experience components III. Partial experience components IV. New components Hardware resources: Hardware provide a platform that supports the tools required in development. When a computer based system is to be engineered, the software team may require access to hardware elements being developed by other engineering teams. Each hardware element must be specified by the software project planner. Umbrella activities: These are project management activities. These activities start as the project starts and end with the project end. Umbrella Activities The umbrella activities are as follows: I. Project tracking II. FTR (Formal Technical Review) III. Risk management IV. Quality assurance V. Documentation Project tracking: In this stage the following activities are done I. First of all the schedule is tracked. II. Then the weightage of work is checked either the goal is completed or not. III. Project details are discussed i.e.: members, communication infrastructure and cost establishment.
  • 10. IV. Task level details are defined such as: manager and members, assigning roles, identifying task resources, identifying task deliverables, task progress and task level costing. V. Generating reports about: project progress, task progress. Schedule if slipping and about the schedule delay impacts. FTR (Formal Technical Review): It is a technical meeting of all managers and project members. In this the following things are done. I. Conflicting issues are discussed. II. Faults are identified III. Solutions are proposed. IV. Plan is modified. Quality assurance: At this stage the following steps are taken I. Correctness II. Completeness III. Flexibility IV. Maintainability V. Testing Documentation: At each and every step the answer of these questions must be documented I. What is to be done? II. What has been done? III. How has been done? IV. What problems were faced? Risk management: At this stage do the following I. Identify the risk II. Avoid the risk III. If not then minimize the effects. Requirement analysis process: Requirement Analysis Cycle
  • 11. Requirement engineering: Categories of requirements: I. Functional requirements II. Non-functional requirements III. Interface requirements Functional requirement: Functional requirement are the primary and main requirements that a system must provide. These are the basic services for which the system is being developed. Non-functional requirement: These are other than actual requirement. These are for making the system more efficient and to build up the customer’s trust on the expertness of engineer. These requirement are I. Reliability II. Efficiency III. Portability IV. Privacy V. Ethical VI. Safety VII. Standards VIII. Delivery Interface requirement: These are the requirements related to the outlook of the system. Sometimes these are also provided by customer but in most case these are the domain knowledge base requirements of the engineer. These are as follows I. Color scheme II. Buttons III. Tools used IV. Banners V. Foreground color VI. Background color VII. Animations Hardware engineering: The selection of some combinations of hardware components to manufacture a new hardware is known as hardware engineering. Selection characteristics: I. Components packed as an individual building block. II. Interface amongst themselves is standardized (standardized means acceptable for all). III. Off the shelf alternatives (available anywhere) IV. Cost V. Performance VI. Reliability Phases of hardware engineering: There are three phases of hardware engineering I. Planning and specification II. Design and prototype implementation (bread board design) III. Manufacturing, distribution and field services.
  • 12. Human engineering: It is a multi-disciplinary activity that applies knowledge derived from psychology and technology to specify and design high quality HCL (Human Computer interface) Characteristics that affect human engineering. I. Human memory and knowledge representation: i. Short term memory ii. Long term memory II. Visual perceptions: Every user like different types of interface. It should be developed by considering each user. III. Human dialog construction: The statements related to dialog boxes that appear on the screen. It should be standardized mean it should easily understand by all users. System engineering: System engineering focuses on a verity of elements, then analyzing, designing and organizing these elements into a system that can be a product, services or a technology for the transformation of information or control. System engineering diagram Analysis modelling: It uses a combination of text and diagrammatic forms to depict requirement for data, functions and behavior in a way that is relatively easy to understand and more importantly straight forward to review for correctness, completeness and consistency.
  • 13. Analysis Modeling ERD is related to data DFD is related to function STD is related to control or behavior. STD: For state For method, data flow For loop State: state is any observable mode of behavior.