Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Week 1 Introduction, Writing a Program, Building a System Software Engineering Spring Term 2016 Marymount University School of Business Administration.

Similar presentations


Presentation on theme: "1 Week 1 Introduction, Writing a Program, Building a System Software Engineering Spring Term 2016 Marymount University School of Business Administration."— Presentation transcript:

1 1 Week 1 Introduction, Writing a Program, Building a System Software Engineering Spring Term 2016 Marymount University School of Business Administration Professor Suydam

2 Using the Right Terminology Class Website WebEx Organizing Teams DreamSpark Bootcamp Beginning Questionnaire Writing Intensive Course Case Studies/Mini-Projects Chapters 1&2 Preparation for Second Class

3

4 4

5 5

6 6 Form 3-person teams Create “distinguished” name Organize for team projects (Case Studies)

7 7

8 8

9 9 IT210 is designated a Writing Intensive Course. Upon successful completion of this course, students will be expected to: a. Produce written work appropriate for the information technology profession through a process that involves drafting and revision based upon feedback; b. Produce focused and coherent documents that address business audiences, move effectively between generalizations and details, make honest use of sources, and engage in complex ideas without distortion; c. Draft documents that show careful attention to fluent sentence structure, grammatical correctness, and proper technical documentation; and d. Take the subject of documentation in the information technology field, analyze appropriate primary and secondary sources materials and support a focused approach in a clear, persuasive, and coherent document. e. The Marymount University Center for Teaching and Learning, Writing Outcomes for WI Course is at the following URL: http://commons.marymount.edu/muctl/wi-resources/wi-objectives/

10 10

11 11 Go through Class Website and know how to navigate Get textbook and read chapters 1-3 Get with Teammates – make plan for how you will meet during semester Decide: Team Name, Case Study (CS) Project, CS Project Name

12 12

13 13 1) Understand the problem – requirements Functionalities Non-functionalities: performance, security, modifiability, marketability, etc. 2) Perform Some Design --- based on requirements Organizing the functionalities in some sequence; possibly using some diagrams Focus on input/output ( data, formats, organization) Think about some constraints (non-functionalities) such as speed, UI looks, programming language, dependencies, etc. any specific algorithm and improvements on sequence of functionalities.

14 14 3) Code/Implement – Turning the design into actual code -- Depending on how much design is completed, one may either directly engage in conversion to code (language dependent) or do some more designing. a) Converting input/output to specific UI Interface or I/O format b) Sequencing the processing in the desired order c) Ensuring and converting the processing “algorithm” correctly to the target language construct. d) figure out how to use language library (properly)

15 15 4) Validate/Test the program – check the program results (via output) with some predetermined set of inputs. The pre-determined inputs are “test cases” and requires some thinking. If the results do not match what is expected then: “Debug” Fix Retest ---- revalidate Stop when all test cases produce the expected results.

16 16 How long (elapsed time) did it take to complete the work? How much effort (total person hours) is expended to do the work? Does the solution solve the complete problem? How “good” is the work – (code, design, documentation, testing, etc.)? based on ?

17 17 Functional vs Non-Functional Requirements

18 18

19 19

20 20 The most important rule is to be consistent—especially in your choice of names, capitalization, and programming conventions. Choose names carefully. In addition to being consistent in naming, try to make sure names for functions and variables are descriptive. Test before using a function or method. Make sure that it works. Know the standard library. In most modern programming languages, the standard library will implement many common functions, usually including sorting and collections of data, database access, utilities for web development, networking, and much more.

21 21

22 22

23 23

24 24 SUM (4-1) = 3+2+1 = 6 SUM(12-1)= 11+10+9+8+7+6+5+4+3+2+1 = 66

25 25 Prepare A & B for class 1/20

26 26

27 27 1. What are statements that define and qualify what the program needs to do? Ans: Requirement statements define what the user needs and thus what the programs needs to do for the users. Page: 2 2. What are statements that constrain the ways in which the software can be designed and implemented? Ans: Design constraints are imposed by the users on the ways in which the design and implementation must satisfy those constraints. An example may be a constraint on the choice of programming language for implementation. Page: 2 3. Which type of requirement statement defines what the program needs to do? Ans: Functional requirement statements as opposed to the non-functional requirement statements speak to the “functions”. Page: 3 4. What requirements qualify the functional requirements and specify in what manner they need to be achieved? Ans: Non-functional requirement statements qualify the functional requirements with additional characteristics such as performance. Page: 3-4

28 28 5. What decisions are those taken by the software engineer about the best ways (processes, techniques and technologies) to achieve the requirements? Ans: Design decisions are made by software engineers to achieve the solution that will satisfy the requirements. Page: 6 6. What type of testing refers to testing done by the clients (or somebody on their behalf), to make sure the program runs as specified. Ans: Acceptance testing is usually performed by the users and clients prior to formally adopting the solution. Page: 6 7. What is GUI, and what is CLI? Ans: GUI stands for Graphic User Interface where graphical icons are used in the interface to users. CLI stands for Command Line Interface where the user communicates with the system through text line of commands and text line of responses. Page: 5 8. List three of the typical kinds of non-functional requirements Ans: Three typical non-functional requirements include: 1) performance related requirements number of transactions per second, 2) real-time processing where a certain processing or response must be made within a given time frame, 3) extensible and modifiable is another non- functional requirements. Others include: easy to use, reliable, etc. Page: 4-5

29 29 1. Define the depth versus the breadth issue in software complexity. Ans: Depth problem addresses the complexity and relationships among the components or items. These relationships may be in the form of sharing data, transfers of control among the components, or some combination of data and control linkage. Breadth problem refers to the number of and variety of components or items. The more there are, the worse the breadth problem. The breadth of software complexity usually refers to “the number of” functionality, components, interfaces, etc. of the software while the depth of the software complexity refers to the “relations and interactions” among these functions, components, etc. Page: 24-25 2. Describe a way to simplify a complex problem. Ans: There are several ways to simplify a problem. They all relate back to curtailing the depth and breadth issue. These include: -decomposition -modularization -separation -incremental iteration As an example, decomposition is a method to take a large problem and identify the smaller problems within that large problem. Then attempt to solve the large problem by first resolving the smaller problems. A common attribute among the methodologies of simplification is to “lessen” the relationships, number of functionalities, amount of interactions, etc. One such technique is decomposition, and another is modularization. Page: 26

30 30 3. List two technical concerns in developing large systems. Ans: Version 1: Some technical concerns in developing large systems are: -development language -development platform and tools -database -network -version and configuration control Version 2: Large system requires software engineers to consider many aspects of development, including a) architecture and design decomposition, b) choices of language, database, network, middleware, and c) the process and methodologies to be used for development. Page: 26 4. What is the maximum number of communication paths for a team size of 20 people? Ans: Utilizing the communications formula for SUM (n-1) where n= 20, the maximum communications for 20 people would be SUM (20-1). Page: 30

31 31 5. List four factors that should be considered in deciding how many post-release people will be needed. Ans: Version 1 - Some of the factors that should be considered in determining the number of people required for post release support include: -# of original development people committed to help in support -# of expected users -# of known problems at the time of the product release -Projected # of problems yet to be found -Amount of training users received Short Answer Version 2 - The amount of post-release support personnel that would be needed is based on several factors – i) how many customers/users are expected; ii) the quality of the product at release time in terms of known bugs that are still in the product; iii) amount of user training that was provided before release; iv) projected number of problems and changes that may be arriving, and v) how well trained are the support personnel. Page: 43-44


Download ppt "1 Week 1 Introduction, Writing a Program, Building a System Software Engineering Spring Term 2016 Marymount University School of Business Administration."

Similar presentations


Ads by Google