0% found this document useful (0 votes)
82 views23 pages

Introduction To Software Engineering

The document introduces software engineering by discussing past failures that led to its development. It defines software engineering as a modeling, problem-solving, knowledge acquisition, and rationale-driven activity. The document also outlines key concepts in software engineering like participants, systems, work products, and activities. It then describes the typical development activities of requirement elicitation, analysis, system design, object design, and implementation. Finally, it discusses management aspects like communication, testing, and following a software life cycle model.

Uploaded by

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

Introduction To Software Engineering

The document introduces software engineering by discussing past failures that led to its development. It defines software engineering as a modeling, problem-solving, knowledge acquisition, and rationale-driven activity. The document also outlines key concepts in software engineering like participants, systems, work products, and activities. It then describes the typical development activities of requirement elicitation, analysis, system design, object design, and implementation. Finally, it discusses management aspects like communication, testing, and following a software life cycle model.

Uploaded by

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

SOFTWARE

ENGINEERING
Introduction to Software Engineering
Topics
1. Failures in Software Engineering
2. What is Software Engineering?
3. Concepts in Software Engineering
4. Development Activities
5. Managing Software

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


Failures in Software Engineering
• Before the 1970’s software developers were having
difficulties delivering software products.
• On Time
• On Budget
• On Expectations (Quality)
• On Expectations (Scope)
• The term software engineering was coined in 1968
as a response to the difficulties encountered by
software developers.

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


Failures in Software Engineering
• Some problems are:
• Year 1900 Bug (Y2K Bug)
• Leap Year Bug
• Interface Misuse
• Security (Worms and Viruses)

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


What is Software Engineering?
• Software Engineering is a modeling activity.
• Software Engineering is a problem-solving activity.
• Software Engineering is knowledge acquisition
activity.
• Software Engineering is a rationale-driven activity.

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


What is Software Engineering?
• Software Engineering is a modeling activity.
• Natural Science
• Biology
• Chemistry
• Others
• Social Science
• Psychology
• Sociology
• Artificial Science
• Computer Science
• Engineering

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


What is Software Engineering?
• Software Engineering is a problem-solving activity.
• Formulate Problem
• Analyze Problem
• Search for Solutions
• Select a Solution
• Specify the Solution
• Software Engineering is not ALGORITHMIC.

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


What is Software Engineering?
• Software Engineering is knowledge acquisition
activity.
• Linear Approach (Waterfall Model)
• Nonlinear Approach (Non-Waterfall Models)
• Issue-Based
• Risk-Based

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


What is Software Engineering?
• Software Engineering is a rationale-driven activity.
• Understanding the decisions that were done and the
reasons behind these decisions.
• Why was the system proposed?
• Why are these the features that were considered?
• Other decisions that were done.

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


Concepts in Software Engineering

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


Concepts in Software Engineering
• Participants and Roles
• Participants are the stakeholders.
• Roles are the participants’ functions and importance in
the project.
• Systems and Models
• Systems are the Real outputs or realities.
• Models are the abstractions of realities.
• Work Products
• Tangible outputs of the project such as documents and
systems.

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


Concepts in Software Engineering
• Activities, Tasks, and Resources
• Activities are sets of tasks towards a major goal, such as
system design and analysis.
• Tasks are specific undertakings to accomplish activities
such as interview for requirement elicitation.
• Resources are used to accomplish activities and tasks
such as time, money and manpower.

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


Concepts in Software Engineering
• Goals, Requirements, and Constraints
• Goals are high-level principles that guide a project.
These goals are usually in conflict such as safe and low
cost cars.
• Requirements are features that the system must have.
These are usually the functional requirements.
• Constraints are the expectations from the system. These
are usually the nonfunctional requirements.

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


Concepts in Software Engineering
• Notations, Methods, and Methodologies
• Notations are graphical or textual set of rules for
representing models such as the roman numerals,
English alphabet and the UML.
• Methods are repeatable techniques for accomplishing
tasks such as the recipe to cook chicken curry.
• Methodologies are collection of methods such as
cookbook for cooking chicken.

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


Development Activities
• Requirement Elicitation
• Analysis
• System Design
• Object Design
• Implementation

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


Development Activities
• Requirement Elicitation
• Clients and developers define the purpose of the
system.
• Actors and Use cases are the usual output of this
Activity.
• Nonfunctional requirements are also identified during
this activity.

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


Development Activities
• Analysis
• In this activity developers aim to produce a model of the
system that is correct, complete, consistent,
unambiguous, realistic, and verifiable.
• The Use Cases are transformed into Object Models
• The result of this activity are object models with
attributes, operations and associations.
• Problems are addresses by the developers and the
clients.

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


Development Activities
• System Design
• The developers describe the design goals of the project
and decompose the system into workable subsystems.
• Hardware and software requirements are also specified
in this activity.
• This activity results to:
• subsystem decompositions; and
• deployment diagram.

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


Development Activities
• Object Design
• Developers use objects to bridge the analysis model and
the actual hardware and software requirements.
• The result of this activity is a detailed object model.

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


Development Activities
• Implementation
• This activity focuses on writing the source code of the
system based on the models.

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


Management Software
Development
• Communication
• Rational Management
• Testing
• Software Configuration Management
• Project Management
• Software Life Cycle Modeling Activities

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


Management Software
Development
• Communication
• Passing of messages from one stakeholder to another
stakeholder.
• Rationale Management
• Making decisions based on available data and situations.
• Testing
• Testing is done throughout the development activities to
ensure quality.

Object-Oriented Software Engineering: Conquering Complex and Changing Systems


Management Software
Development
• Software Configuration Management
• Concerned with monitoring and controlling changes to
the system.
• Project Management
• Focused on the delivery of quality products that meet
requirements (scope) within budget and the specified
timeframe.
• Software Life Cycle Modeling Activities
• Model that describes the software development process

Object-Oriented Software Engineering: Conquering Complex and Changing Systems

You might also like