Looks like no one added any tags here yet for you.
Software Engineering
The discipline that uses computer and software technologies as problem-solving tools.
System Approach
Involves identifying activities and objects, defining system boundaries, and considering nested systems and system interrelationships.
Analysis
Decomposing a large problem into smaller, understandable pieces; abstraction is key.
Synthesis
Building (composing) software from smaller building blocks; composition is challenging.
Method
A formal procedure or "recipe" for accomplishing a goal, typically independent of tools used.
Tool
An instrument or automated system for accomplishing tasks more efficiently.
Procedure
A combination of tools and techniques to produce a product.
Paradigm
Philosophy or approach for building a product, such as object-oriented vs. structured approaches.
Computer Science
focusing on computer hardware, compilers, operating systems, and programming languages
A Fault
a bug that occurs when a human makes a mistake, called an error, i performing some software activities.
A failure
a bug that is a departure from the systems required behavior
Transcendental view
quality is something we can recognize but not define.
User View
quality is fitness for purpose.
Manufacturing view
quality is conformance to specification
Product view
quality tied to inherent product characteristics.
value-based view
depends on the amount the customers willing to pay for it
Three ways of considering quality?
The quality of the product, The quality of the process, and The quality of the product in the context of the business environment
Quality Models
Used to relate the user's external view of software quality to the developer's internal view.
McCall's Quality Model
A model used to assess the quality of software products.
Customer
the company, organization, or person who pays for the software system.
Developer
the company, organization, or person who is building the software system.
User
the person or people who will actually use the system.
Stakeholders
Participants involved in a software development project, including customers, developers, and users.
Participants
(stakeholders) in a software development project
System Approach
Refers to the method of analyzing and designing a computer system as a whole entity, considering its interrelated components and boundaries.
Activity
an event initiated by a trigger
System boundaries
determine the origin of input and destinations of the output
Interrelated Systems
Systems that are dependent on each other, with complex interdependencies, and the possibility of one system existing within another.
Engineering Approach
The systematic process of building a system, involving requirement analysis, system design, program design, testing, delivery, and maintenance.
Members of the Development Team
Individuals involved in software development, including requirement analysts, designers, programmers, testers, trainers, maintenance team, librarians, and configuration management team.
Requirement Analysts
work with the customers to identify and document the requirements
Designers
generate a system-level description of what the system us supposed to do
Programmers
write lines of code to implement the design
Testers
catch faults
Trainers
show users how to use the system
Maintenance Team
fix faults that show up later
Librarians
prepare and store documents such as software requirements
Configuration Management Team
maintain correspondence among various artifacts
Wasserman’s Seven Key Factors
Critically of time-to-market, Shifts in the economics of computing, Availability of powerful desktop computing, Extensive local- and wide-area networking, Availability and adoption of object-oriented technology, Graphical user interfaces, Unpredictability of the waterfall model of software development.
How Has Software Engineering Changed
Evolution of software engineering from single processors to multi-systems, influenced by factors like time-to-market, computing economics, object-oriented technology, and software process improvements.
Abstraction
Describing a problem at a general level to hide unnecessary details and focus on essential aspects.
Analysis and Design Methods and Notations
Techniques used to document, communicate, and unify different views of a system during the software development process.
User Interface Prototyping
Building a small version of a system to identify key requirements, demonstrate feasibility, and develop a user-friendly interface.
Software Architecture
Describing a system in terms of architectural units and their relationships, using decomposition techniques like modular, data-oriented, and object-oriented decomposition.
Software Process
Various approaches to software development based on the type of application, emphasizing control for enterprise-wide applications and rapid development for departmental applications.
Software Reuse
Utilizing artifacts from previous developments to improve productivity and reduce costs, while considering concerns like maintenance, development time, and generality vs specificity.
Measurement
Describing quality goals quantitatively to assess and improve the quality of software products.
Tools and Integrated Environments
Integration of platforms, presentations, processes, data, and control in software development tools to enhance collaboration and