Please enable JavaScript.
Coggle requires JavaScript to display documents.
Introduction o software engieneering (Participants (Client, User, Manager,…
Introduction o software engieneering
What is Software Engineering?
Software engineering is a modeling activity
Software engineering is a problem-solving activity
Software engineering is a knowledge acquisition activity
Software engineering is a rationale-driven activity
Modeling
A model is an abstract representation of a system
Models are useful when dealing with systems that are big
Models also allow us to visualize and understand systems that either no longer exist or that are only claimed to exist
Problem Solving
Formulate the problem
Analyze the problem
Search for solutions
Decide on the appropriate solution
Specify the solution
Knowledge Acquisition
Knowledge acquisition is a nonlinear process
The addition of a new piece of information may invalidate all the knowledge we have acquired for the understanding of a system
Participants
Client
User
Manager
Human Factors
Specialist
Developer
Technical Writer
Systems and Models
We use the term system as a collection of interconnected parts
We use the term model to refer to any abstraction of the system
Work Products
A work product is an artifact that is produced during the development, such as a document or a piece of software for other developers or for the client.
Specification
Operation manual
Status report
Test manual
Tasks and resources
A task represents an atomic unit of work that can be managed
Resources are assets that are used to accomplish work
Functional and Nonfunctional Requirements
A functional requirement is a specification of a function that the system must support
A nonfunctional requirement is a constraint on the operation of the system that is not related directly to a function of the system
Notations, Methods, and Methodologies
A notation is a graphical or textual set of rules for representing a model
A method is a repeatable technique that specifies the steps involved in solving a specific problem
A methodology is a collection of methods for solving a class of problems and specifies how and when each method should be used
Requirements Elicitation
During requirements elicitation, the client and developers define the purpose of the system
Analysis
During analysis, developers aim to produce a model of the system that is correct, complete, consistent, and unambiguous
System Design
During system design, developers define the design goals of the project and decompose the system into smaller subsystems that can be realized by individual teams
Object Design
During object design, developers define solution domain objects to bridge the gap between the analysis model and the hardware/software platform defined during system design
Implementation
During implementation, developers translate the solution domain model into source code
Testing
During testing, developers find differences between the system and its models by executing the system (or parts of it) with sample input data sets
Managing Software Development
Communication
Communication is a very important part, it includes the exchange of models and documents about the system and its application domain
Rationale Management
Rationale is the justification of decisions
Software Configuration Management
Software configuration management is the process that monitors and controls changes in work products
Project Management
Project management does not produce any artifact of its own