Podcast
Questions and Answers
What is the primary goal of software engineering?
What is the primary goal of software engineering?
- To prioritize speed of delivery over all other considerations.
- To use the latest technology, even if it's not suitable for the project.
- To minimize development costs regardless of quality.
- To create a framework for developing software with high quality. (correct)
Software is solely a product and does not act as a vehicle for delivering other products.
Software is solely a product and does not act as a vehicle for delivering other products.
False (B)
Which of the following is an example of a generic software product?
Which of the following is an example of a generic software product?
- An embedded control system in a car.
- A traffic monitoring system designed for a particular city.
- Air traffic control software for a specific airport.
- PC software such as graphics programs sold to any customer. (correct)
What are the three elements typically included in software?
What are the three elements typically included in software?
Software maintenance costs are typically less than the cost of initial software development, especially for long-term systems.
Software maintenance costs are typically less than the cost of initial software development, especially for long-term systems.
Which statement best describes the lifespan of software versus hardware?
Which statement best describes the lifespan of software versus hardware?
Match the software application type with its description:
Match the software application type with its description:
Which of the following is NOT a characteristic of Web applications?
Which of the following is NOT a characteristic of Web applications?
According to the IEEE definition, software engineering is the application of what type of approach?
According to the IEEE definition, software engineering is the application of what type of approach?
In software engineering, ethical behavior is solely about adhering to the laws and regulations.
In software engineering, ethical behavior is solely about adhering to the laws and regulations.
The three aspects of the layered approach to software engineering are: tools, methods and ______.
The three aspects of the layered approach to software engineering are: tools, methods and ______.
Which of the following is the foundation of software engineering that provides a framework for effective delivery of software?
Which of the following is the foundation of software engineering that provides a framework for effective delivery of software?
A software process should rigidly adhere to a fixed version and not be adaptable to the needs of the team.
A software process should rigidly adhere to a fixed version and not be adaptable to the needs of the team.
Match the term with the correct description:
Match the term with the correct description:
Which of the five generic process framework activities involves code generation and testing?
Which of the five generic process framework activities involves code generation and testing?
In adapting a process model, the degree of process strictness remains constant across different projects.
In adapting a process model, the degree of process strictness remains constant across different projects.
______ process models emphasize detailed planning and adherence to the process description.
______ process models emphasize detailed planning and adherence to the process description.
Which of the following is a focus of agile process models?
Which of the following is a focus of agile process models?
Name at least one of the main point about "Understand the Problem"?
Name at least one of the main point about "Understand the Problem"?
What do correctness proofs help ensure?
What do correctness proofs help ensure?
Software application is more closely related to theory and fundamental principles
Software application is more closely related to theory and fundamental principles
What is the first step in problem solving?
What is the first step in problem solving?
Ethical considerations should not be a point of concern in software engineering.
Ethical considerations should not be a point of concern in software engineering.
Why can't the industry produce software in a traditional way?
Why can't the industry produce software in a traditional way?
What best describes the difference between generic and customer software?
What best describes the difference between generic and customer software?
It is cheaper to change after the release of product rather than during the definition phase.
It is cheaper to change after the release of product rather than during the definition phase.
A WebApp resides on a ______ and must serve the needs of a diverse community of clients.
A WebApp resides on a ______ and must serve the needs of a diverse community of clients.
What is the final of the four examination steps?
What is the final of the four examination steps?
Hooker's practices provide no value to users.
Hooker's practices provide no value to users.
Match the number to its name?
Match the number to its name?
Which of the following best describes software?
Which of the following best describes software?
Software, unlike hardware, never deteriorates over time.
Software, unlike hardware, never deteriorates over time.
What is characterized by the number algorithms being crunched?
What is characterized by the number algorithms being crunched?
Which of these needs is not related to change in legacy software?
Which of these needs is not related to change in legacy software?
Good software is reliable.
Good software is reliable.
Hooker's practices will help someone determine a clear thought process before any ______ is done.
Hooker's practices will help someone determine a clear thought process before any ______ is done.
Which of the following best describes ethical behavior?
Which of the following best describes ethical behavior?
A process is not a single version.
A process is not a single version.
What can a team not directly affect?
What can a team not directly affect?
What is part of the 5 steps
What is part of the 5 steps
Flashcards
What is Software?
What is Software?
The product that software professionals build and then support over the long term.
Software as a Product
Software as a Product
Software delivers computing potential and handles information.
Software as a Vehicle
Software as a Vehicle
Software supports functionality and enables communication.
Generic software products
Generic software products
Signup and view all the flashcards
Customized software products
Customized software products
Signup and view all the flashcards
Features of Software
Features of Software
Signup and view all the flashcards
Software Costs
Software Costs
Signup and view all the flashcards
Maintainability
Maintainability
Signup and view all the flashcards
Dependability and Security
Dependability and Security
Signup and view all the flashcards
Efficiency
Efficiency
Signup and view all the flashcards
Acceptability
Acceptability
Signup and view all the flashcards
Ethical Responsibility
Ethical Responsibility
Signup and view all the flashcards
The Process layer
The Process layer
Signup and view all the flashcards
The Method layer
The Method layer
Signup and view all the flashcards
The Tools layer
The Tools layer
Signup and view all the flashcards
Quality Focus
Quality Focus
Signup and view all the flashcards
Software Process
Software Process
Signup and view all the flashcards
Process Framework
Process Framework
Signup and view all the flashcards
Communication activity
Communication activity
Signup and view all the flashcards
Planning activity
Planning activity
Signup and view all the flashcards
Modeling activity
Modeling activity
Signup and view all the flashcards
Construction activity
Construction activity
Signup and view all the flashcards
Deployment activity
Deployment activity
Signup and view all the flashcards
Umbrella Activities
Umbrella Activities
Signup and view all the flashcards
Tracking progress
Tracking progress
Signup and view all the flashcards
Managing risk:
Managing risk:
Signup and view all the flashcards
Ensuring quality
Ensuring quality
Signup and view all the flashcards
Performing reviews
Performing reviews
Signup and view all the flashcards
Measuring
Measuring
Signup and view all the flashcards
Managing change
Managing change
Signup and view all the flashcards
Managing reuse
Managing reuse
Signup and view all the flashcards
Product Creation
Product Creation
Signup and view all the flashcards
Prescriptive Process Models
Prescriptive Process Models
Signup and view all the flashcards
Agile Process Models
Agile Process Models
Signup and view all the flashcards
Stakeholders
Stakeholders
Signup and view all the flashcards
Requirements
Requirements
Signup and view all the flashcards
Validate Solutions
Validate Solutions
Signup and view all the flashcards
Test Solutions
Test Solutions
Signup and view all the flashcards
Why Test Software?
Why Test Software?
Signup and view all the flashcards
Why Software Exists
Why Software Exists
Signup and view all the flashcards
Study Notes
- Software consists of programs, data, and documentation, each with its configurations
- Software engineering involves technologies, methods, and tools based on engineering principles used in software development
- A core objective of software engineering is to provide a structure for developing high-quality software
What Is It?
- Software is what software professionals build and support long-term.
- It includes instructions (computer programs), which provide features, functions, and performance during code execution.
- Data structures let programs store and manipulate data.
- Documentation describes how the program works and is used.
Dual Role
- Software serves as a product.
- It delivers computing potential.
- It produces, manages, obtains, alters, shows, or sends out data.
- Software acts as a vehicle for product delivery.
- It directly supports system functionality.
- It controls other programs like operating systems.
- It influences communication through networking software.
- It facilitates the creation of other software through tools.
Products
- Generic products are independent and available to any customer.
- Examples include PC software for editing, graphics, project management tools, CAD software, and appointment systems for specific markets like dentists.
- Customized products are made to order for a specific client.
- Examples are embedded control systems, air traffic control software, and traffic monitoring systems.
Features
- Software is engineered or developed, not manufactured, which avoids the quality issues of traditional manufacturing.
- It does not wear out like hardware but can degrade.
- The industry shifts toward component-based software, most software remains custom-built.
Costs
- Software costs often exceed hardware costs
- Software maintenance costs surpass development costs, particularly in long-lived systems.
- Software engineering seeks cost-effective software development and is more expensive.
Cost of Change
- Definition is 1x more expensive
- Development is 1.5 - 6x more expensive
- After release 60 - 100x more expensive
Software Applications Categorize
- System software includes compilers, editors, and file management tools.
- Application software is stand-alone programs for specific needs.
- Engineering/scientific software is characterized by heavy use of algorithms.
- Embedded software resides within a product or system.
- Product-line software offers specific capabilities for diverse users.
- Web Apps network-centric software.
- AI software uses non-numerical algorithms for complex problem-solving.
New Categories
- Open world computing enables pervasive, ubiquitous, distributed computing with wireless networks.
- Net sourcing uses the Web as a computing engine.
- Open source provides "free" source code to the computing community. Data mining, grid computing, cognitive machines and software for nanotechnologies are also included
Legacy Software
- It must change to adapt to new computing environments and technologies.
- It needs to implement new business requirements.
- There is a need to expand to interface with modern systems and databases.
- It is necessary to re-architect to survive in a networked environment.
Characteristics of Web Apps
- It sits on a network and serves various client communities
- Many users can access at once
- The amount of users can vary greatly each day
- Users will leave if access is too slow
- Users demand constant access
- Many WebApps use hypermedia for text, graphics, audio, or video
- Quality of content matters as do aesthetics
- Conventional applications evolve over time
- WebApps must get software to market fast
- Difficult to restrict who can use the application
- The look and feel of a WebApp matters
IEEE Definition
- Software engineering includes a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.
- It also examines methods for the systematic, disciplined, and quantifiable development, operation, and maintenance of software.
Attributes
- Good software should be easy to change to meet customer needs and to correct when needed.
- It should include reliability, security, and safety features to prevent errors and protect data.
- Software should use system resources efficiently.
- It must be understandable, usable, and work with all other systems.
Ethical Responsibility
- It involves responsibilities beyond technical skills.
- They must behave honestly and ethically
- Ethical behavior involves professional accountability
Definition
- Software engineering emphasizes quality
- It consists of a process model, methods, and tools.
- The process model offers a framework
- The methods give specific tactics
- The tolls support and speed up processes and methods
Process
- Its a collection of activities to create one product
- No one version of software development, constantly being updated
- Aimed at helping those involved to pick what best suites their needs
- Aims at delivering software with good quality in the time restraints
Framework
- The framework serves to manages and builds software
- Consists of a work tasks, work products, milestones and deliverables and QA checkpoints
5 Activities
- Communication to understand the clients goals
- Programing to define the project needs and work products
- Modelling to sketch how the architecturally the system looks
- Creation to create the code and test it
- Deployment to get to the customer so they can use it and give feedback
- These 5 steps can be applied to many projects
- Applied over and over with projects
- With each iteration, builds upon previous version
Umbrella
- Complements the 5 framework activities and management of team and project
- Includes program assessment for quality and risks
- Technical reviews and collects project and product aspects
- Manage the effects of changing software
- Make reusable components that are created out models, etc
Adapting a Process Model
- The process has to be flexible to changing needs
- Can be different from project to project
- The differences are in activities, definitions of phases, work products, how to control quality, how strict the process is
Process Models
- Focuses on a definition with the goal of improving quality and manageable project
- Also can be high, with a large degree of bureaucracy.
- Agile promotes flexibility with web applications
- They are based on a series of rules that lead to less emphasis on process.
Prescriptive or Agile?
- Prescriptive includes documentation and has a planned process
- Agile is less formal with teams
- Prespective has clear control when in a team environment
- Agile can be hard to scale
- Prespective is good for large or dangerous items
- Agile is small, easy to manage
1 - Understanding
- Figure out who the stakeholders are
- What do the stakeholders want and how can that objective get met
- Do you already know which functions are needed
- Can the function break down into parts
- Does the data exist
- Is the item easy to handle
2 - Solution
- Have similar problems been seen before
- Were there similar problems solved
- Can sub issues define solutions
- Can a solution be efficiently implemented
3 - Plan
- Is their code readable
- If the product has been tested
- If the solution helps the user reach their goal
- Is there a similar solution already
Principles:
- Why is it there
- Keep It Simple, Stupid
- Maintain the Vision
- What You Produce, Others Will Consume
- Open to the Future
- Plan Ahead for Reuse
- Think before you do
Software Myths
- Erroneous beliefs about the product
- Easy to build or add to
- Believing in a myth will lead to bad choices
- It is important to be grounded in reality
- If you have problems, just add more developers
Some myths
- Once it is running, job is done, not the whole 80%
- Assessing its quality must be assessed during testing
- Software will take too long, better to have less and get a quality output for less
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.