Solutions to Chapter One Questions1.
What is software? List out the important characteristics of software.
Software is a set of instructions or computer programs that when executed provide desiredfunction and performance.The important characteristics of software are:
Software is developed or engineered; it is not manufactured.
Software does not wear out.
Most software is custom-built, rather than being assembled from existing components.
What is the advantage of software reusability?
The advantage with software reuse is that, it allows for faster software development and higher-quality programs.
Briefly list out the major application areas of software.
The two areas of application of software are:
Give the IEEE definition of software engineering.
"The application of a systematic, disciplined, quantifiable approach to the development, operation,and maintenance of software, that is, the application of engineering to software."
Name the three generic views of software engineering.
The three generic views of software engineering are:
The definition phase
The development phase
The maintenance phase
What is software engineering paradigm?
Software engineering is a discipline that integrates process, methods and tools for thedevelopment of computer software. This development strategy is often referred to as a processmodel or software engineering paradigm. A process model for software engineering is chosenbased on the nature of the project and application, the methods and tools to be used, and thecontrols and deliverables that are required.
What are the limitations of waterfall model?
The limitations of waterfall model are:
Students learn to test software effectively. Programmers learn practical ways to design high quality tests during all phases of software development. Students learn the theory behind criteria-based test design and to apply that theory in practice. Topics include test design, test automation, test coverage criteria, and how to test software in cutting-edge software development environments.
- Students who complete this course will be able to test software in structured, organized ways.
- Programmers will learn effective, practical ways to design and automate high quality tests for unit and integration testing.
- System testers will learn how to efficiently design effective tests. Students will learn how to apply theory in practical ways to design tests based on test criteria.
You must have knowledge of discrete math, programming, data structures and general knowledge of software engineering. You will need a basic familiarity with some of the subjects and terms of software engineering. You will need an in-depth understanding of the syntax and semantics of multiple programming languages. Most examples will be in Java and some assignments will require JUnit tests. If you did not take the prerequisites, please do not ask for “permission.” Read my thoughts instead.
I expect you to read the relevant material before lecture. The lectures may not cover everything in the readings and will often include material not found in the readings.
We will have computer and homework assignments for most of our topics. Some will require pencil and paper and others will require modest programming or use of tools available from the Web. You should submit homework on paper and in class if possible. If you miss class, you may submit via email. No zip files please!
Timeliness: Homework assignments must be submitted at the beginning of class on the day they are due to be counted as on time. Late submissions will receive a 10% per week. Per GMU policy, all assignments must be submitted before the beginning of final exams (December 13).
You may work on homework assignments individually if you wish.
However, not only is collaboration how real software is built, but also the best way to learn. Therefore, collaborative assignments will receive a 5% bonus credit. If you work collaboratively, list every collaborator and a short summary of what each person did. You can submit one assignment with multiple names or work together to analyze the problem and develop the solution, then complete the assignment separately. You can collaborate in teams of up to three students
with as many classmates as you want, but only other students in SWE 637 this semester. You may work with different partners with different homework assignments. (Updated 15-September)
Note: You are NOT ALLOWED to include “guest names.” Every person listed as a collaborator must contribute. If someone is listed as a collaborator but did not contribute, all will be given a zero on the assignment and reported to the university honor committee.
New re-take policy: Instead of dropping quizzes (as in past semesters), students who miss or perform badly on a quiz can have one retake per quiz.
- Scoring: The maximum score on a retake quiz is 80%.
- Replace: If you take the retake, your new score will count and the first score is dropped.
- Scheduling: Retake quizzes will be offered immediately before class or during the instructor’s or the TA’s office hours. Students who want a retake a quiz must send an email to me and the TA telling us which quiz and when you want to take it.
- Content: The retake quiz will be different from the one given in class, but will cover the same topics.
- Timing: The retake quiz must be taken before the second class meeting after the in-class version.
We will do in-class exercises during most class meetings. Some will be done as a class, some will be done in small groups, and a few may be individual exercises. They will be graded on a pass/fail basis and will count toward your overall grade. They will be announced during class. Important: Credit can only be received if done in class, although if you miss class, you should do the posted assignments on your own to prepare for the quizzes or final exam.
- Real-life software failures: Start a discussion about a real-life software failure. Tell us what happened and how it affected users.
- Describe how one of the ideas from our testing class could have found a real-life software failure before the software was released.
- Start a thread about an error in the book or slides, or about a topic that goes beyond what we discuss in class.
- Post questions to an appropriate thread and they will be answered by your instructor, TA, or classmates. Basic questions are encouraged, but only “interesting” questions will earn credit. Correct answers will also earn credit.
Lectures in this class will be computer free. Computers, whether in the form of laptops, tablets, or mobile phone/pocket-computers, may not be used while I am lecturing. I have a detailed explanation why, but here is the short summary: Computers interfere with your classmate's ability to concentrate on the educational material, my concentration, and your learning. Multitasking is a myth promulgated by inefficient people. Taking notes by hand is much more effective than typing notes on a computer. If you have to check your email or text messages, or take a phone call, please sit near the door so you can unobtrusively step out. I will ask you to close your computers, and if that doesn’t work, will ask you to leave the classroom. (Computers will be used extensively during in-class exercises, discussions, and examples.)
Office hours are times that I commit to being in my office, door open, first come, first served. You do not need an appointment, and no appointments are made. If you cannot make my office hours, then we can try to set up an appointment. Please note that I have family commmittments, so I am seldom available after 5:00 pm. I will inform you in class or on the discussion board if I have to miss office hours.
I always accept linkedin requests from current and former students—we clearly have a professional relationship. I tweet random thoughts irregularly about software engineering @jeffoffutt. Out of respect, I do not initiate facebook requests from students, but usually accept them.
As with all GMU courses, SWE 637 is governed by the GMU Honor Code. In this course, all quizzes and exams carry with them an implicit statement that it is the sole work of the author, unless joint work is explicitly authorized. Help may be obtained from the instructor or other students to understand the description of the problem and any technology, but the solution, particularly the design portion, must be the student’s own work. If joint work is authorized, all contributing students must be listed on the submission. Any deviation from this is considered an Honor Code violation, and as a minimum, will result in failure of the submission and as a maximum, failure of the class.
If you need academic accommodations, please see me and contact the Disability Resource Center (DRC) at 993-2474. All academic accommodations must be arranged through the DRC.
Writing Center: A114 Robinson Hall; (703) 993-1200; http://writingcenter.gmu.edu
University Libraries “Ask a Librarian”; http://library.gmu.edu/ask
Counseling and Psychological Services (CAPS): (703) 993-2380; http://caps.gmu.edu
I occasionally send important announcements to your Mason email account, so you must read it regularly. Professors are required to use your Mason email, not a personal email accounts. Email sent to the professor or TA should have a subject that starts with “swe 637.” If not, we may not notice it. General class questions should be posted on the discussion board, not sent through email.
- Participation (discussion board and in-class): 15%
- Weekly homework assignments: 20%
- Weekly quizzes: 30%
- Closed book, in-class, comprehensive final exam: 35%