0% found this document useful (0 votes)
13 views56 pages

Software Engineering & Project Management

Uploaded by

4nc2a
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views56 pages

Software Engineering & Project Management

Uploaded by

4nc2a
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 56

SOFTWARE ENGINEERING &

PROJECT MANAGEMENT
Syllabus
What is ENGINEERING?
• branch of science & technology concerned
• with DESIGN,BUILDING,& INNOVATE
PRODUCT.
Software as a Product
• How to turn software into product?

• Software needs to be turned into product becoz


customers want quality products.
• By employing sound engineering practices,
software can be turned into innovative products.
• Computer software is the product that software
professionals build and then support over the long
term.
Evolving role of software
• software takes on a dual role
It is a product
the vehicle for delivering a product.

Software delivers the most important product of


our time—information
Software
• Software is: (1) instructions (computer programs)
that when executed provide desired
• features, function, and performance; (2) data
structures that enable the programs to
adequately
• manipulate information, and (3) descriptive
information in both hard copy and
• virtual forms that describes the operation and use
of the programs.
software characteristics
• 1. Software is developed or engineered; it is
not manufactured in the classical sense.
• 2. Software doesn’t “wear out.”
• 3. Although the industry is moving toward
component-based construction, most
• software continues to be custom built.
Changing nature of software
• System software—a collection of programs
written to service other programs.
• Some system software (e.g., compilers,
editors, and file management
• utilities) Application software—stand-alone
programs that solve a specific business need.
• Engineering/scientific software
SOFTWARE ENGINEERING
• The IEEE [IEE93a] has developed a more
comprehensive definition when it states:
• Software Engineering: (1) The application of a
systematic, disciplined, quantifiable approach
to the development, operation, and
maintenance of software;
• i.e, the application of engineering to
software.
Software engineering is a structured
approach to the design, development,
testing, and maintenance of software
systems. It encompasses a wide range of
practices, processes, and methodologies to
ensure that software is reliable, efficient, and
meets user needs
Software engineering
layers
• Tools: Software engineering involves a range of tools designed to
streamline and improve the process of developing, testing,
deploying, and maintaining software systems. These tools help
engineers manage the software development lifecycle, collaborate
with team members, ensure code quality. Examples include Visual
Studio Code, Eclipse, IntelliJ IDEA, and PyCharm.
• Methods: These methods address different stages of the software
development lifecycle, from initial planning and design to
implementation, testing, and maintenance.
• Process:The process in software engineering refers to a structured
sequence of activities or steps used to develop software from concept to
deployment and maintenance. This process helps ensure that software is
reliable, efficient, and meets user needs. The software engineering process
typically involves multiple stages, often described as the Software
Development Life Cycle (SDLC)
• Quality Focus: Quality focus in software engineering refers
to the practices and processes that ensure software
meets high standards of performance, reliability,
maintainability, security, and user satisfaction. It's a
crucial aspect of software development because it
directly affects user experience and the long-term
success of a product.
Process Framework
• A process framework is a structured method or system
that outlines the essential components, steps, and
guidelines needed to complete a specific task or set of
tasks within an organization or project.
• It serves as a blueprint for achieving goals, maintaining
quality, and ensuring consistency.
• A Process framework establishes the foundation for
complete software process by identifying number of
framework activities that are applicable to all projects.
• Modelling: The activity encampases the creation of models
that helps developer and customer to better understand
software requirements.
• Deployment: The software as a complete entity or partial
entity is delivered to the customer who evaluates the
delivered product.
Modelling activity is composed of two stages analysis and design
Process Patterns
• Software process pattern defines as a set of activities,actions,work products
required to build software system.
• The Concept of patterns can be defined at any levels of abstraction in some
cases pattern can be used to describe a complete process and in some cases
it can be used to define a important framework in software development.
• Pattern: The pattern is given a meaningful name that describes function
within software process. Patterns in process frameworks refer to proven
strategies or approaches to solve common problems within the
context of a software development process.
• Intent: The objective of the pattern is customer-communication is to
establish collaborative relationship with the customer and to define project
scope, business requirements etc.
• Type: Task patterns define a software engineering practice that is a
part of process and relevant to software engineering.
• Stage Patterns define a framework activity for the process and
it encampses multiple work patters that are relevant to stage.
• For example planning pattern requires that customers and
software engineers have established a collaborative
communication.
• By Combining patterns software team construct a process that
meets need of the project.
Process assessment
• Even if software process is there its not guarantee that software will deliver
on time which will meet customer needs or it will meet characteristics that
will customer expect.
• The Capability Maturity Model Integration (CMMI) is a widely
recognized framework for process improvement in software engineering
and other industries. It provides organizations with a structured approach to
assess and improve their processes to achieve higher quality, efficiency,
and effectiveness
• when we apply process patterns to a software project we will get a product
but we are not sure wheather we require this product or not in other sense
the product developed will satisfy customers requirements or not.
• In order to get all the requirements fulfilled we will be using
some real time practices which will get the good reliable
software.
• Here you have to continuously monitor the software like how
it is doing, wheather everything is going fine or not.
Personal and Team Process Models
• A Software process model built at a corporate or organization is effective
only if its adaptable to changes.
• Personal Software process refers to for example for our personal use if we
are developing any software then personal process is used.
• It also measures the work product and the quality of the work product.
• Personal Software process also makes person plan the project like
estimating and scheduling so that he can control the quality of all products.
• There are 5 phases in personal software process:Planning.High Level
Design, High level design review, Development
• Planning refers to the initial steps and based on this we can finalize the size
of team and resource needed for the project.
• High level design refers to choosing a component in software and finding
what and all external requirements needed and prototype model is built
when its not clear.
• High level design refers to issues and errors and identified, tracked and
recorded.
• In High level design review any issues or errors that is left out during high
level design stage will be rechecked here.
• In the development stage all the design planning which you have done in
previous phases for that code is generated and tested.
Team software process(TSP)
• Team software process is associated with teams like suppose if you
are building a project with a team then team software process is
used.
• This will also provide us with a high quality software
• The objectives:
1. Establish self directed teams who plan and track their work
establish goals and own their process and plans.
2. Motivating the teams refers to the task of manager like when
sometimes teams are stuck in something or got demotivated.
Process Technology
• Previously we have discussed some process models which will be adapted
by the software team and to achieve this there are process technology tools.
• Here once a acceptable process is ready then process technology can be
used to allocate, monitor and control all software engineering tasks.
Product and Process
• In software engineering, the concepts of "product" and "process" are
foundational. They represent two distinct but interrelated aspects of
software development,
• The "product" refers to the software or system being developed. It
encompasses all components, features, and functionality that are delivered
to end users or stakeholders
• The "process" refers to the methods, practices, and workflows used to
create and deliver the product. It encompasses the various stages and
activities involved in software development
• Main thing to remember is that if the process is weak the end product will
surely suffer.
Chapter 2 Process Models
• Prescriptive process models define a set of activities,Milestones,Work
Products that are required to engineer high quality software.
• These process models may not be perfect but they provide a roadmap for
software engineering work.
Prescriptive Models
• Every software engineering organization must define a set of framework
activities for the software process it develops.
• Framework activities refers to essential stages or steps involved in creating
a software.
• Then resultant process model is then accommodated to specific nature of
each project, people who do the work and the environment in which work
is conducted.
The waterfall model
Waterfall Model
• Waterfall model also called as classic life cycle suggests a systematic
sequential approach to software development that begins with customer
specification and progresses through planning, modelling,construction and
deployment of software.
• Waterfall model is one of the oldest models in software engineering.
1. Real projects rarely follow the sequential model that the model proposes
and sequential model means one after another. But Linear model can
cause confusion as project team proceeds.
2. Its difficult for a customer to explain all this requirements sometimes but
waterfall model requires this and if there is no proper requirement
specified then uncertainty occurs.
Incremental process models
• Incremental process models is a software development approach where
software project is divided into smaller, individual modules and each part is
delivered partially.
• Sometimes there may be a need to provide software function to users
quickly and then expand the functions later.
Incremental Model
• The incremental model is a software development approach that involves
dividing the overall project into smaller, manageable segments or
increments.
• Incremental model like the prototype model is iterative in nature which
means here operational product is delivered at each increment.
• Earlier versions are the stripped down versions of the earlier product but
they provide capability to serve the user.
RAD Model
• Rapid application development is a incremental software process model
that emphasizes a short development life cycle.
• Rad Model is a high speed adaptation of waterfall model in which rapid
development is achieved by construction based approach.
• If requirements are well achieved and project scope is constrained RAD
Enables a development team to create a Fully functional system.
• This fully functional system will be developed in 60 to 90 days.
• Communication works to accommodate the business problems and
information characteristics that software must accommodate.
• Planning is essential because multiple software teams work on parallel on
different software functions.
• Modelling has three major phases business modelling,data modelling and
process modelling.
Disadvantages of Rad Model
1. Limited for Small to Medium Projects:
RAD is typically best suited for small to medium-sized projects. Large
and complex projects with high integration needs might not fit well within
the RAD model.
2. High Dependency on User Feedback:
RAD relies heavily on constant user feedback and interaction. If users are
unavailable or not committed, it can lead to incomplete or misdirected
development.
Spiral Model
Incremental Process Model
Specialized process models.

• Component-Based Software Engineering (CBSE)


• Purpose: Develop software by integrating
reusable components.
• Key Features:
• Emphasis on the design and use of software
components.
• Focus on interoperability and standardization.
• Applications: Enterprise applications, large-scale
distributed systems.
• Aspect-Oriented Software Development (AOSD)
• Purpose: Address cross-cutting concerns in
software design.
• Key Features:
• Separation of concerns through aspects, which
modularize cross-cutting concerns.
• Integration with object-oriented programming.
• Applications: Systems with complex and tangled
concerns, such as logging, security, and error
handling.
• Formal Methods
• Purpose: Apply mathematical techniques to
specify, develop, and verify software systems.
• Key Features:
• Use of formal specification languages and rigorous
proofs.
• Emphasis on correctness and reliability.
• Applications: High-assurance systems, such as
cryptographic protocols and safety-critical
systems.

You might also like