chapter 1-4
List ten XP key practices.
1. Incremental Planning: Quickly determine the features to be included in the next release, using a combination of business priorities and technical estimates. Requirements are recorded on Story Cards and the Stories to be included in a release are determined by the time available and their relative priority. The developers break these Stories into development 'Tasks'. 2. Small releases: The minimal useful set of functionalities that provides business value is developed first. Releases of the system are frequent and incrementally add functionality to the first release. Typical release times for XP are 2 to 4 weeks. After a release, the customer runs its tests to see whether the new features work and provides immediate feedback to the team. New detailed plans are made for the next release. 3. Simple design: Try to keep the design of the system as simple as possible. Eliminate unnecessary complexity as soon as you discover it. Do not complicate the design based on things that might be needed in the future but choose the simplest solution that works now. The design may be changed in the future, if necessary. 4. Test-driven development: Ensure that testing is done continuously and is automated as much as possible. Write unit tests for all code. In most situations, test-first development is actually performed. That is, write the tests before you write the actual code. Keep running the tests all the time. Ask customers to write functional acceptance tests to verify when the features are finished. 5. Design improvement (Refactoring): Practice refactoring, which involves a restructuring of the system without changing its behavior, aiming to remove duplication, improve communication, and simplify or add needed flexibility. The design is not completed all at once in the beginning, but it is modified when needed and improved over time. Refactoring means that the programming team look for possible improvements to the software and implement them immediately. Examples of refactoring include the reorganization of a class hierarchy to remove duplicate code, the tidying up and renaming of attributes and methods, and the replacement of code with calls to methods defined in a program library. 6. Pair programming: Programmers are to work in pairs with other programmers in the team, and team members are going to be modifying other people's code. All code is always reviewed by at least one other person. Programmers work in pairs and develop tests for each task before writing the code. Although pair programming does not always sound appealing at first (because two people are required to do the same job), the improvements in quality usually more than compensate for the small decrease in productivity. Also, the design and code has to be understandable, or the partner may not easily follow the design and the code and will complain. There needs to be a coding standard that is abided by all. 7. Collective ownership: Establish ownership of the code by the whole team. Anyone can change any piece of code in the system at any time. Because unit test is emphasized along with continuous integration, you can be relatively confident that the changes do not destabilize other pieces of the system. 8. Continuous integration: As soon as the work on a task is complete, it is integrated into the whole system. After any such integration, all the unit tests in the system must pass. This way, the development organization always has a working system and can detect integration errors immediately. 9. Sustainable pace: Work only at a pace you can sustain; 40 hours a week is reasonable. As a rule, never work overtime 2 weeks in a row. If a developer constantly needs overtime, then the original time estimate is not correct, and the plan may need to be adjusted. A fatigued mind makes mistakes. 10. On-site customer: A representative of the end-user of the system (the customer) should be available full time for the use of the XP team. In an XP process, the customer is a member of the development team and is responsible for bringing system requirements to the team for implementation.
Briefly explain the functions performed in the five tasks of the Waterfall Model.
1.Requirements analysis and definition: The system's services, constraints, and goals are established by consultation with system users. They are then defined in detail and serve as a system specification. 2. System and software design: The systems design process allocates the requirements to either hardware or software systems by establishing an overall system architecture. Software design involves identifying and describing the fundamental software system abstractions and their relationships.3. Coding and unit testing: During this stage, the software design is realized as a set of programs or program units. Unit testing involves verifying that each unit meets its specification. 4. Integration and system testing: The individual program units or programs are integrated and tested as a complete system to ensure that the software requirements have been met. After testing, the software system is delivered to the customer. 5. Operation and maintenance: This is normally the longest life cycle phase. The system is installed and put into practical use. Maintenance involves correcting errors which were not discovered in earlier stages of the life cycle, improving the implementation of system units and enhancing the system's services as new requirements are discovered.
Functionality requirements are expressed as scenarios called "user stories" in XP. What are user stories and how are they utilized?
: User stories are implemented directly as a series of tasks. Stories are typically written on actual pieces of paper or story cards. A user story is a short description of a scenario and serve as the main inputs to the XP planning process. Once the story cards have been developed, the development team breaks these down into tasks and estimates the effort and resources required for implementing each task.
What type of testing refers to testing done by the clients (or somebody on their behalf), to make sure the program runs as specified
Acceptance testing is testing done by the clients or somebody on their behalf.
Discuss two advantages and two disadvantages of the Waterfall Process Model.
Advantages:It served as a tool for software project managers in the early 1970s to manage software projects.It represented the software life cycle as the software went through different and distinct stages of development.Disadvantages:The waterfall model has limited interaction with users at only the requirements phase and at the delivery of the software.The model was a single iteration model that provided very little task overlapping
[b] Development effort
Agile Traditional
[a] Development time
Agile Facilitate the development in small iterations, guaranteeing there is always a finish product. Traditional Lengthy times, up to 5 years
[a] Would you use an Agile process or a Traditional process for a small project with a team of 8 people?
Agile process.
What are Agile processes?
Agile processed are a family of software development methodologies that produce software in short iterations and allow for greater changes in design.
[c] Give one example of an entry criterion to the Design Phase.
All the requirement specifications are completed, reviewed by the customers and other stakeholders, and accepted by all parties.
[b] List the key processes required for maturity Level 2 in the SEI's CMM.
At Level 2, the organization has mastered 6 processes and can repeat its success with these 6 processes: 1) Requirements management, 2) Project tracking, 3) Quality assurance, 4) Project planning, 5) Subcontract management, and 6) Configuration management. Software configuration management is the process of managing all the pieces and parts of artifacts produced as part of software development and support activities.
[c] List the key processes required for maturity Level 4 in the SEI's CMM.
At Level 4, the organization has introduced 2 more processes that deal with quantitative and quality measurement: 1) Quantitative process management and 2) Software quality management. Metrics and measurements of the process and of the software artifacts are introduced.
Briefly explain five simple rules to improve the quality of your code.
Be consistent, this is very important. You want your code to be consistent this will make easier to check your errors.Carefully pick a name -use descriptive name for function and methods and variable.Test every function/ method before using - it's easier to test a small simple of code than a large one.Know the standard library make sure to standard libraries will save extra work, make the code more understand.Review your code very carefully - reviewing your code is very important in reducing errors
How does a software development process help in handling the complexity of a system?
By guiding and coordinating the group of people to complete different tasks.
[b] What is a CLI?
CLI (command line interface) is a type of human-computer interface that relies solely on the textual input and output.
Briefly explain six characteristics of Agile methodologies.
Characteristics of Agile Methodologies are as followed : Short releases and multiple iterations: Agile methodologies divide the work into small pieces. Release the software to the customer as often as possible. Incremental design/development: Agile methodologies don't try to complete the design up front because not enough is known about the system. Delay design decisions as much as possible, and improve the existing design when more knowledge is acquired. User involvement: Rather than trying to produce formal, complete, indisputable standards at the beginning, Agile methodologies ask the users involved with the project to provide constant feedback. This usually leads to a better-suited system. Minimal documentation: Agile methodologies do only the necessary amount of documentation. The source code is a big part of the actual documentation. Enough documentation must be available if the released software needs to be maintained by a group different from the original developers. Informal communications: Agile methodologies maintain constant communication, but not necessarily through formal documents, such as memos. The premise being that people communicate better informally. Assume Change: Agile methodologies assume that the requirements and environment will change, and try to find good ways to deal with this fact
Explain four ways to simplify a complex problem.
Decomposition of the problem and the solution, simplify the problem
What type of statements constrain the ways in which the software can be designed and implemented? Give two examples of such constraints.
Design constraints are statements that constrain the ways in which the software can be designed and implemented. Two examples off design constraints are user inter and programming language.
[a] What are the four quadrants in a spiral model?
Determine objectives, Evaluate alternatives, Plan next phase, Verify next-level product
[a] What is meant by the "entry criteria" to a process?
Entry criteria describe and list all the conditions and material that must be met prior to starting a process or an activity.
[b] What is meant by the "exit criteria" to a process?
Exit criteria describe and list all the conditions and material that must be met prior to terminating a process or an activity.
List five advantages of Agile processes.
Five advantages of Agile processes are Low process complexity: The processes themselves are simple, which allows them to be easily understood and implemented. Low cost and overhead: The processes mandate fewer activities. Efficient handling of changes: The processes are designed with the assumption that requirements will change, and the methodology is prepared for these changes. Fast results: Most Agile processes have fast iterations and produce a core system that can be used in a relatively short time. The system will then be improved, and more functionality added as the project progresses. Usable systems: Because the customer is involved and the process deals well with changes, chances are the final product will be what the customers actually want when the project is completed rather than what was originally planned as requirements.
[b] Would you use an Agile process or a Traditional process to develop a life-critical software system?
For the development of a life-critical software system traditional process is the best.
Briefly explain four disadvantages of Agile processes.
Four disadvantages of Agile processes are Possibly not scalable: Agile processes have been utilized by relatively small teams, and are not able to scale without losing some, or a lot, of their agility. Many projects are too big or too critical to be developed with Agile methods; however, many of the Agile practices and ideas can be incorporated into traditional methodologies. Heavy reliance on teamwork: Not all people are able to work well in teams. Often, one bad member can destroy the cohesiveness of the entire team. Agile methods rely on informal communication and team dynamics much more than traditional methods. Reliance on frequent access to customer: Agile methods need frequent feedback from the customer. This level of constant customer feedback will not work when a team is developing a large industry-wide application where multiple industry experts across a span of 10 to 20 companies are involved in the requirements process. Without customer feedback, Agile methods are not able to validate requirements or adapt to change. Traditional methodologies concentrate the feedback at the beginning of the process during the requirements phase and at the end of the process during the acceptance tests phase. Cultural clash: Many XP practices clash with accepted software engineering wisdom, or with common management techniques. Performance evaluations of team members, for example, are harder to perform in XP because the work is done in pairs, and the code is owned by the whole team.
Which type of requirement statement defines what the program needs to do?
Functional requirement fines what are program needs to do.
[b] List four factors that must be considered in the design phase.
Functionalities Input/output Constraints (non-functional requirements) Algorithms
[a] What is a GUI?
GUI (graphical user interface) is a human-computer interface that uses windows, icons and menus and which can be manipulated by a mouse.
[b]What is the goal of a software process model?
Goal of software process model is to provide guidance for a systematic coordination and controlling of the tasks that must be performed and of and the personnel who perform the tasks in order to achieve the end software product.
[b] Discuss each of the four phases of the Rational Unified Process Model with respect to the development activity of "testing."
Inception - during this phase the plan the implementation, testing integration methodologies, tool.Elaboration - during this phase we establish the major test scenarios.Construction - during this phase the product increment is built, coded, and tested and achieve the version of the code that is releasable to the Alpha test sites. Transition- during this phase the product increment is released to a small restricted group of users for further testing and correction All the fixes and components are integrated. All Alpha and Beta tests with a restricted number of users must be completed and the fixes to discovered problems are integrated into the final release during this phase.
[c] Discuss each of the four phases of the Rational Unified Process Model with respect to the development activity of "design."
Inception - in this phase Establish some architecture and early design alternatives. Elaboration - in this phase the detailed use cases are being formulated, and the architecture and design are getting firmed up. Construction - during this phase the product increment is built, coded, and tested. The coding of the design must be completed in this phase. All the planned test cases must be executed and most of the discovered problems are fixed in this phase.Transition - during this phase the non-code artifacts, such as manuals and educational materials, are also integrated into the complete product
[a] Identify the five levels of the SEI's CMM.
Initial, repeatable, defined, managed, and optimizing.
What is a "software development process?"
Is the set of task, sequence and flow of the task, I/O from tasks, starting and finish of each tasks in development of software.
[c] List two of the software engineering concepts of Wasserman which address the software engineering topic of "Requirements."
List two of the software engineering concepts of Wasserman which address the software engineering topic of "Requirements." Analysis and design methods and notation ,User-interface prototyping contributes to understanding requirements and user preferences early.
[a] List two of the software engineering principles of Davies which address the software engineering topic of "Requirements."
List two of the software engineering principles of Davies which address the software engineering topic of "Requirements Understand the problem before writing the requirement: Give products to customers early
[b]List two of the software engineering principles of Royce which address the software engineering topic of "Requirements."
List two of the software engineering principles of Royce which address the software engineering topic of "Requirements." Establish an iterative process that addresses risks early in the process. Use an approach that allows artifacts to be demonstrated early so that these artifacts can be assessed earlier and Plan to have incremental releases
[e] Give one example of an exit criterion from the Implementation Phase.
Ninety percent of the coding errors have been identified and corrected.
What type of requirement statement qualify the functional requirements and specify in what manner they need to be achieved?
Non-Functional Requirements is the statement qualify the manner in which the functional requirements need to be achieved.
[a] Explain the practice of "pair programming."
Pair programming - programmers work in pair and a team. Team member modifies another person's code. All code is always reviewed by at least one other person. Programmers work in pair and develop test for each task before writing
List six of the typical kinds of non-functional requirements.
Performance - Performance includes response time, processing time, memory utilization, etc. Security - Controls to protect from loss, inaccuracy, alteration, unavailability, or misuse of the data and resources. Modifiability - Is the program easy to maintain and modify,Maintainability - Software must evolve to meet changing needs of customers. Usability - Software must be usable by the users for whom it was designed. Configurability.Reliability - Software must be trustworthy.Availability.Scalability.
Briefly explain the three areas that need to be coordinated in a large software engineering project.
Process what methodologies are we going doing use.Product the coordination of the software and thought process of changing, doing updates and maintenance of the product. People who is doing the development, who are the support staff and who are the end users
What type of statements define and qualify what the program needs to do?
Program requirements are the statements that define and qualify what a program needs to do.
An IEEE/ACM task force has recommended eight principles for ethics and professional practices in software engineering. Which one of those principles do you think is the most important? Why?
Public, software engineers shall act consistently with the public interest because of all the privacy issue with data collection and using of software to undermine the Democratic process.
What are the major tasks in developing and supporting a software system (i.e., Software Project Management)?
Requirements gathering, definition and specification, design code/unit test , integration and test , user support and problem fixes
What is a Scrum sprint?
Scrum are basic units of development for units of functionalities of the total software product.
What is Scrum?
Scrum is a general agile method, but its focus is on managing iterative development rather than specific technical approaches to agile software engineering. Also is another Agile development methodology that has demonstrated good results and is currently very popular.
Briefly describe the Simple Process Model.
Simple process model is depicting the tasks involved in the code-compile-unit test cycle
What are three approaches to handling the complexity of a system?
Simplification-by break down the problem, what is been ask of the program. Start with the smallest and move to the bigger ones.Improving technology and tools-what technology are we going to use handle the data, what language are we going to use, bring together all the necessary tool to solve the problem. Improving Process and Methodologies - agree on the software development process and who will be doing what and when should it be done by.
[c] Would you use an Agile process or a Traditional process to develop a software system that involves people and companies in America, Brazil, China, and Germany?
Since the traditional process is better suited for remote sites and formal culture
Give one definition of software engineering.
Software engineering is that form of engineering that applies the principles of computer science and mathematics to achieving cost-effective solutions to software problems.
Explain the practice of "test-first" development and which Agile process advocates it?
Test - driven development - Ensure that the testing is done continuously as much as possible. Write unit tests for all code. In most situations test first development is actually performed. Test before you write the actual code. Ask customers to write functional acceptance test to verify when the features are finished.
Explain the depth versus the breadth issue in software complexity.
The breadth of complexity issues is number of varieties of the components or items. And depth of complexity deals with relationship that components/items. This can be like sharing data, control linkage and so on.
Explain the difference between the multiple component incremental model and the multiple release incremental model.
The difference between the multiple component increments model and the multiple release incremental model is with the multiple component incremental model, the project is subdivided into smaller components, which are then developed incrementally and iteratively. The components are developed in an overlapping fashion where each component goes through the phases of requirements specification, design, code, and unit testing. As the components are completed, they are continuously merged and integrated into a common bucket for integrated system testing. With the multiple release incremental model, the first version of the software is developed (i.e., requirements completed, designed, coded, tested, and packaged) which contains most of the core functionalities. The first increment is delivered to customers as Release 1. Additional functionalities and supplemental features are then developed and delivered separately as they are completed, as Release 2, Release 3, and so on. Each subsequent release also includes fixes of bugs from previous releases along with new functional features. Although each release is independently built, there is a link between releases because the existing design and code of the previous release is the basis upon which future releases are built. This approach has no integration bucket. This approach facilitates evolutionary software development and management.
What are two purposes of developing an effort estimation for a project?
The effort estimate is required to produce a cost estimate and a schedule. In order to produce a complete effort estimate, the requirements must be understood.
Explain the five items that are included when describing the major activities in a software project.
The five items that are included when describing major activities are Activities: A detailed descriptions of each of the activities included in the process must be specified. Control: The necessary entry and exit criteria for each activity, and the order in which each activity should be performed must be specified.Artifacts: The resulting output from each of the activities must be identified and defined.Human Resources: The number of people needed, their individual skill levels, and the experience levels of the people who perform the activities must be specified. Tools: The tools that may be used to enhance the performance of the activity must be specified.
Briefly explain the five fundamental principles of XP.
The five-fundamental principle of XP Rapid feedback: Use pair programming, unit testing, integration, and short iterations and releases. Simplicity: Try the simplest possible design. Don't worry too much about considering cases that may or may not occur in the future. Incremental change: Don't try to make big changes; try small changes that add up and provide frequent releases of the system. This is applied to design, coding via refactoring, planning, and team composition. Code refactoring is a form of code modification to improve the structure of the code. Embracing change: Change is embraced through regular system releases to customers, test-first development, refactoring to avoid code degeneration, and continuous integration of new functionality. Quality work: Try to create as good a product as possible.
List the four core values of XP.
The four core values of XP are Frequent communication between team members and with the customer. Simplicity in design and code. Feedback at many different levels. Unit tests and continuous integration provide feedback to the individual developer, or pair of developers. Also, small iterations provide customer feedback. Courage to make and implement difficult but necessary decisions. One possible decision is not to use XP, if it does not seem appropriate for the project.
. Describe the four events in the Scrum process?
The four events in the Scrum process are as follow the sprint planning meeting in which the product owner and the team decide on what will be implemented during that sprint. The daily Scrum is a short meeting (15 min or less) in which team members synchronize, make sure they are on-track, and ask for help if needed. The sprint review is held at the end of the sprint to inspect its products and adjust the product backlog if needed. The sprint retrospective is held after the sprint review and on the last day of the sprint in which the team members discuss the sprint results, learn from them, and use those lessons as input for the next sprint planning.
[a] What are the four phases of the Rational Unified Process Model?
The four phases of the Rational Unified Process Model are Inception,Elaboration, Construction, and Transition
[b] Give two advantages of the multiple release incremental model.
The incremental model provided a certain amount of risk containment. If any one component ran into trouble, the other components were able to still continue to be developed independently. That is, one problem would not hold up the entire development process.It utilizes the "divide and conquer" methodology where a large, complex problem is decomposed into parts.
[a] What are the major concepts that drove the Rational Unified Process Model?
The major concepts that drove the Rational Unified Process model are Use-case and requirements driven, Architecture centric, and Iterative and incremental.
[a] Give two advantages of the multiple component incremental model.
The multiple release incremental model makes it possible to evolve the first release, which may have flaws, into an ideal solution through subsequent releases.It utilizes the "divide and conquer" methodology where a large, complex problem is decomposed into parts.
List two technical concerns in developing large systems. Choices of the language, database and network.
The process and methodologies you will use for development software.
[d] Give one example of an entry criterion to the Implementation Phase.
The programming language has been agreed upon by all parties. All the necessary programmers have been hired.
[b] Trace the requirements set of activities through each quadrant.
The requirement plan is done during the i) Plan next phase and ii) Determine objectives phase. The requirements prototype is done during the iii) Evaluate alternatives phase. The requirements specification is done during the iv) Develop next-level product phase..
[b] List three advantages of pair programming.
The three advantage of pair programming It supports the idea of collective ownership and responsibility for the system. The software is owned by the team as a whole and individuals are not held responsible for problems with the code. Instead, the team has collective responsibility for resolving these problems. It acts as an informal review process because each line of code is looked at by at least two people. Code inspections and reviews are very successful in discovering a high percentage of software errors It helps support refactoring, which is a process of software improvement
Explain the three main roles in a Scrum project.
The three main roles in a Scrum project the product owner, who talks to and decides with users about the content of each sprint. The development team, usually 3 to 10 developers, who actually produce the software, i.e., develop the sprint. A Scrum Master, who keeps the team on track and ensures Scrum is followed, as a coach but not as a project leader, i.e., the master runs the sprint. One role of the Scrum master is to protect the development team from external distractions. The Scrum master is a facilitator who arranges daily meetings, tracks the backlog of work to be done, records decisions, measures progress against the backlog, and communicates with customers and management outside of the team.
. Briefly summarize the three phases in the planning activity in XP.
The three phases in the planning activity in XP are Exploration: find out what the system can do with several so-called moves. The moves include writing a user story, which is done by business personnel. Commitment: business personnel choose the scope and date of the next release and development personnel commits to delivering it. Steering: the plan is updated in the steering phase, which consists of several moves or activities
[a] List two of the software engineering principles of Davies which address the software engineering topic of "Architecture and Design."
The two of the software engineering principles of Davies which address the software engineering topic of "Architecture and Design." Evaluate design alternative.Use an appropriate model:
[a] How many process areas, in total, are included in SEI's Software CMMI?
There is a total of 25 process areas in CMMI.
[b] List those that fall into the engineering category and the support category.
Those that fall into the Engineering category are: Requirements Development, Requirements Management, Technical Solution, Product Integration, Verification and Validation. Those that fall into the Support category are: Configuration Management, Process and Product Quality Assurance, Measurement and Analysis, Organizational Environment for Integration, Decision Analysis and Resolution and Causal Analysis and Resolution
[c] List one of the software engineering concepts of Wasserman which addresses the software engineering topic of "Tools."
Tools and integrated environments. Tools and integrated environments are necessary for the development and support of any large, complex software.
XP methodology differentiates the decisions that should be made by business personnel from decisions that should be made by technical personnel. Explain two decisions that are made by business personnel and two decisions that are made by the technical staff.
Two decision that should be made by business personnel is the Scope, what needs to get done for the system to be useful and Priorities, what features should be included, and which one is most important. Two decision that should be made by technical personnel are Estimates because technical staff would know how it might take to code and how much equipment might cost and Process because technical staff would know how things perform and how are the teams organized.
Identify two factors that motivated software engineers to move from the waterfall model to the incremental or spiral model?
Two factors that motivated software engineers to move from the waterfall model to the incremental or spiral model are the need to develop multiple components, the need to overlap the development, and the need to be more evolutionary lead to incremental process and spiral process. Also, the need to be more risk-averse led to the spiral model.
[c] List two of the software engineering concepts of Wasserman which address the software engineering topic of "Testing and Quality?"
Two of the software engineering concepts of Wasserman which address the software engineering topic of "Testing and Quality Metrics. Tools and integrated environments: necessary for development and support of any large complex software.
[a] Outline the four simple steps to write a small computer program.
Understanding the problem- you need to know what the program is asking for. Perform Some Design-design should be based on what the program needs are Code/Implement: design turning into code. Validate/ Test the Program does the program do what it supposed to do without any issue and does meet the need what it was ask for.
[b] How are "use cases" utilized?
Use cases are utilized by making every aspect of the software development process is initiated by the users' case, the user case drive the software development process.
Explain four ways to handle the complexity of a system by improving technology and tools
Using database to handle information and structure of the data, programming and development of the platforms, pick the langue and whatever is needed for development, agree on the computing networks and pick the modeling type that will be used to solve the problem and decide the tools for automated testing
What is meant by the phrase principles of software engineering?
What is meant by the phrase principles of software engineering principles of software engineering are meant to be rules and assumptions in software engineering derived from extensive observations. Something like newton's laws of motion in physics
[d] Would you use an Agile process or a Traditional process to develop a software system in an environment where changes occur frequently?
You would use an Agile process to develop a software system in an environment where the changes occur frequently.
What is the maximum number of communication paths for a team size of 25 people?
[25(25-1)] /2=300
[d] List five non-technical issues that affect the success or failure of software projects.
five non-technical issues that affect the success or failure of software projects are Executive commitment and leadership, Thorough planning of both business and technical processes, Skilled and experienced workforce, Management focus and project monitoring and Willingness to make changes and adjustments when required.
From the definition of software engineering, list four areas that software engineering must address.
four areas that software engineering must address are Product characteristics and metrics. People, skills, and teamwork, Tools and training and Project coordination and management.
[a] List four reasons that have caused software project successes.
four reasons that have caused software project successes are User involvement, Executive management support, Clear requirement statement and Proper planning
Give four reasons why software is not only a product but also a vehicle for delivering a product.
four reasons why software is not only a product but also a vehicle for delivering a product Supports or directly provides system functionality. E.g., a keyboard is useless without the appropriate device driver, Controls other programs, Effects communications and Helps build other software.
[c] List one of the software engineering concepts of Wasserman which addresses the software engineering topic of "Process."
one of the software engineering concepts of Wasserman which addresses the software engineering topic of "Process." Life cycle and process:
[a] List one of the software engineering principles of Davies which addresses the software engineering topic of "Tools."
one of the software engineering principles of Davies which addresses the software engineering topic of "Tools is Use different languages for different phases
[b] List one of the software engineering principles of Royce which addresses the software engineering topic of "Tools."
one of the software engineering principles of Royce which addresses the software engineering topic of "Tools is Use model-based and machine-processable notations for design.
[a] What is a software process model?
software process model is A set of tasks that need to be performed and by whom and the input to and output from each task so the pre-conditions and post-conditions for each task as well as the sequence and flow of these tasks
Define a software system.
software system usually consists of a number of separate programs, configuration files which are used to set up these programs, system documentation which describes the structure of the system and user documentation which explains how to use the system.
List three management strategies that are key to ensuring the delivery of high-quality software on time and within budget.
three management strategies that are key to ensuring the delivery of high-quality software on time and within budget are Focused attention on the software development environment Disciplined development processes and Methodical use of metrics to gauge cost, schedule and functional performance targets
[b] List three reasons why "challenged" software projects fail.
three reasons why "challenged" software projects fail Lack of user input, Incomplete requirements and specifications and Changing requirements and specifications.
[c] List three reasons why software projects fail.
three reasons why software projects fail Incomplete requirements, Lack of user involvement and Lack of resources.
List three software characteristics that differ from hardware characteristics.
three software characteristics that differ from hardware characteristics Software is engineered (developed), not manufactured in the classical sense. Approaches are different. Activities are different. E.g., the manufacturing phase for hardware can introduce quality problems that are nonexistent for software. Software doesn't wear out. Hardware does wear out which causes the failure rate to increase with time. Most software is custom built, not assembled out of components. Making software is complex to develop and maintain. It is difficult to test software exhaustively. Often it is the first of its kind. When hardware components wear out, they are replaced with spare parts, not so with software. Software failure indicates an error in design or implementation. Therefore, software maintenance is more complex than hardware maintenance.
[c] List two of the software engineering concepts of Wasserman which address the software engineering topic of "Architecture and Design."
two of the software engineering concepts of Wasserman which address the software engineering topic of "Architecture and Design Abstraction and Modularity and architecture:
[a] List two of the software engineering principles of Davies which address the software engineering topic of "Process."
two of the software engineering principles of Davies which address the software engineering topic of "Process." Use an appropriate process model, Follow with care be careful in adopting tools, process, and methodology and so on. Do not follow just because someone is doing it or using it.
[a] List two of the software engineering principles of Davies which address the software engineering topic of "Testing and Quality?"
two of the software engineering principles of Davies which address the software engineering topic of "Testing and Quality are Make quality number 1 It is shortsightedness to deliver a product that is of poor quality. Inspect code. E.g., use code reviews. Inspection is a much better way to find errors than testing.
[b] List two of the software engineering principles of Royce which address the software engineering topic of "Architecture and Design."
two of the software engineering principles of Royce which address the software engineering topic of "Architecture and Design." Emphasize component-based development to reduce the coding effort. Use model based and machine-process able notations for design
[b] List two of the software engineering principles of Royce which address the software engineering topic of "Process."
two of the software engineering principles of Royce which address the software engineering topic of "Process." Establish the process for quality control and project assessment that includes the assessment of all the intermediate artifacts. Establish change management to handle iterative processes.
[b] List two of the software engineering principles of Royce which address the software engineering topic of "Testing and Quality?"
two of the software engineering principles of Royce which address the software engineering topic of "Testing and Quality are use an approach that allows artifacts to be demonstrated early so that these artifacts can be assessed earlier. Establish the process for quality control and project assessment that includes the assessment of all the intermediate artifacts.