COSC 70 - Software Engineering

studied byStudied by 29 people
5.0(2)
Get a hint
Hint

Engineering

1 / 49

encourage image

There's no tags or description

Looks like no one added any tags here yet for you.

50 Terms

1

Engineering

is the application of well-understood scientific methods to the construction, operation, modification and maintenance of useful devices and systems.

New cards
2

Software

is comprises the aspects of a system not reduced to tangible devices, e.g. computer programs and documentation

New cards
3

Functionality, Reliability, Usability, Efficiency, Maintainability, Portability

Software quality model identifies six main quality characteristics, namely:

New cards
4

Software Engineering

is the sub discipline of computer science that attempts to apply engineering principles to creation, operation, modification and maintenance of the software components of various systems.

New cards
5

Functionality

Is the essential purpose of any product or service. The more functions a product has, then the more complicated it becomes to define its functionality.

New cards
6

Reliability

Defines the capability of the system to maintain its service provision under defined conditions for defined periods. One aspect of this characteristic is fault tolerance that is the ability of a system to withstand component failure.

New cards
7

Usability

Exists with regard to functionality and refers to the ease of use for a given function. The ability to learn how to use a system (learnability) is also a major sub characteristic of usability.

New cards
8

Efficiency

This characteristic is concerned with the system resources used when providing the required functionality. The amount of disk space, memory, network etc. provides a good indication of this characteristic.

New cards
9

Maintainability

The ability to identify and fix a fault within a software component is what the maintainability characteristic addresses. In other software quality models, this characteristic is referenced as supportability.

New cards
10

Maintainability

Maintainability is impacted by code readability or complexity as well as modularization. Anything that helps with identifying the cause of a fault and then fixing the fault is the concern of maintainability. Also the ability to verify (or test) a system, i.e. testability, is one of the sub characteristics of maintainability.

New cards
11

Portability

This characteristic refers to how well the software can adopt to changes in its environment or with its requirements. The sub characteristics of this characteristic include adaptability. Object oriented design and implementation practices can contribute to the extent to which this characteristic is present in a given system.

New cards
12

Computer Applications Software Engineers

Analyze user needs and design, construct, and maintain general computer applications software or specialized utility programs. These engineers use different programming languages, depending on the purpose of the program. The programming languages most often used are C, C++, and Java, with FORTRAN and COBOL used less commonly. Some software engineers develop both packaged system and system software, or create customized applications.

New cards
13

Computer Systems Software Engineers

Coordinate the construction and maintenance of a company’s computer systems and plan their future growth. Working with the company, they coordinate each department’s computer needs, such as ordering, inventory, billing, and payroll recordkeeping.

New cards
14

Systems Software Engineers

Work for companies that configure, implement, and install complete computer systems. These engineers may be members of the marketing or sales staff, serving as the primary technical resource for sales workers and customers. The may also be involved with technical support to the company’s customers.

New cards
15

Sponsor or Client

The individual paying for the project such as IT executives, managers, or entrepreneurs. The Sponsor is the final decision-maker but tends to be hands-off, relying on the Program Manager to flag issues.

New cards
16

Product Advocate

Primary contact person of the client and is the one responsible for ensuring that requirements and functional specifications are generated and that the Sponsor is happy with the progress and results.

New cards
17

System Architect

Is responsible for the software architecture and design, and for how the software fits into a larger infrastructure. They are involved in technology stack choices, approaches to system interfaces, data flow, and database design.

New cards
18

Program Manager

The program manager takes the role of the project manager on small-scale projects. On a large-scale project, or program, their role is to map out and define the list of dependent projects that need to be completed to reach the overall goal. When it comes to the program, they focus on the strategy and implementation, and how to delegate the projects appropriately.

New cards
19

Project Manager

Manages the operations of an individual project within the program. They coordinate time, budget, and resources and delegates tasks across the team.

New cards
20

UX, Development, QA, and Technical Writing Managers or Skill Set Managers

Manage the personnel in their skill set and are involved in issue resolution on the project as needed. Skill Set Managers also help to resolve any personnel issues within their site’s project team.

New cards
21

UX, Development, QA, and Technical Writing Leads

Manage the workload and direction of their skill set on a daily basis. On smaller projects, the Development Lead is also the System Architect.

New cards
22

UX Designer, Developer, Quality Engineer, and Technical Writer

Are line-level roles that actually design and create the product.

New cards
23

UX Designer

Writes specifications, draw wireframes, and define visual elements.

New cards
24

Developer

Write code and resolve bugs.

New cards
25

Quality Engineer

Test code and flag bugs.

New cards
26

Technical Writer

Create written documentation for the product.

New cards
27

Identifying the Current Problem/s

Answers the question: “what do we not want?” This phase where learning the strengths and weaknesses of the current system with improvement is the goal.

This is done by getting input from the stakeholders, including customers, salespeople, industry experts, and programmers.

New cards
28

Planning/Analyzing

Answers the question: “what do we want?”

In this stage, the team defines the requirements of the new software, and determines the cost and resources required after analyzing the results of the problem identification.

New cards
29

Designing

This defines how you can achieve the plans. In this phase, the system and software designs are prepared aligned with the requirement specifications generated from the planning stage.

New cards
30

Implementation

The stage where the software is develop by generating the actual code. This is the longest phase of the SDLC or software development life cycle.

New cards
31

Testing

This is where the software is tested for defects and deficiencies. Issues found are fixed until the product meets the original specifications.

New cards
32

Deployment

The product is deployed to the customers for their use.

Upon reception, the customers are expected to do the beta testing to determine if any changes are required and if any bugs are caught. Adjustments will be made by the engineering team to resolve the issues found before the final deployment.

New cards
33

Maintenance

After deployment, regular software updates are required to match with the changes and advancement of the real world.

New cards
34

Individual Ability

Production and maintenance of software is a labor-intensive activity so these factors are direct functions of individual ability and effort. Aspects include competence and familiarity with the particular application area.

New cards
35

Team Communication

The new approach towards software developments requires many individuals to be involved. Many recent innovations in software engineering, like design reviews, structured walkthroughs and code-reading exercises improve communication between the programmers.

New cards
36

Product Complexity

There are three generally acknowledged levels of product complexity:

a)      Application Programs

b)      Utility programs and

c)      System level programs

New cards
37

Appropriate Notations

The representation schemes are of fundamental importance. Good and standardized notations can clarify the relationships and interactions, of any specific interest

New cards
38

Systematic Approaches

Following certain standard systematic approach in procedures and techniques makes the developments software process very professional and contribute in improving the quality of the software product.

New cards
39

Controlling Changes

The factors that contribute the factor of change in software are

a)      Design deficiencies in software

b)      Change in requirements due to poor understanding of problem

c)      External economic and political factors.

  • To minimize the change the following suggestions cam be utilized

(a)     Use of appropriate notation and standard techniques

(b)     Scope of the mechanism to change flexibility  provided to the software

During  planning

New cards
40

Level of Technology

As the level of technology is changing rapidly, hence modern programming languages should be used during the development. Modern programming language provide:

a)      Improved facilities for data definition & data usage

b)      User defined exception handling

c)      Concurrent programming etc.

In addition, varied tools are provided such as assemblers and primitive debugging facilities integrated under a single fully integrated development environmentX

New cards
41

Level of Reliability

Are required to increase reliability causes decreased productivity when measured in LOC produced per programming month.

New cards
42

Problem Understanding

Failure to understand the problem can result in an unsuccessful project; there are some suggestions for avoiding these problems

a)      Careful planning

b)      Costumer interviews

c)      Task observation

d)      Prototyping

e)      Precise product specifications etc.

New cards
43

Available Time

Programmer productivity is sensitive to the calendar time available for project completion. It is observed that the development time cannot compressed below 75 percent of the nominal development time. Extending a project beyond some nominal domination increases the total effort required.

New cards
44

Required Skills

The practice of SE required variety of skills. The requirement definition and design activity are conceptual in nature hence require good creating problem solving skills. Preparations of external documents require good writing and expressive skills. Software Engineers should have good socializing skills to interact properly with the managers, costumers and other engineers.

New cards
45

Facilities  and Resources

Through various studies, it had been found that work related factors such as

a.)     God machine

b.)     Quite place of work

c.)     Plenty of access to the machine

d.)     Creative challenges

e.)     Variety of tasks

f.)      Opportunities for professional advancement etc., creates more satisfaction  among the programmers  rather than the status factors

New cards
46

Adequacy of Training

It is seen that the fresher’s from college do not have the following skills, which are very necessary for becoming a successful software engineer

a.)     Express oneself clearly in English

b.)     Develop and validate  software requirements and design  specifications

c.)     Work with in application area

d.)     Perform software maintenance

e.)     Perform economic analysis

f.)      Work with project management techniques

g.)     Work In groups

Hence adequate of training is required for entry-level programmers.

New cards
47

Management Skills

As the concept of SE is new, hence the managers who work in traditional styles are unable to manage the SE activities. In addition, it is seen that during giving promotions if the competency of the candidate is only measured in technical point of view then there may arise the same kind of problem. Therefore, the management skills inn candidate should also include technical and managerial competency

New cards
48

Appropriate Goals

Setting of appropriate goals is a major contributing factor in successful execution of a project; generally, the most common goals include Generality, Efficiency, and Reliability

New cards
49

Rising Expectations

Progress is constantly being made in the development of tools and techniques to improve software quality and programmer productivity, equally diversity, size and complexity of software applications are growing at a fast rate but also the expectations and increasing demands. Hence, it is necessary to adhere to the latest that is happening.

New cards
50

Stability of Requirements

The requirements of software project includes

a)      Manpower

b)      Software

c)      Hardware

The requirements definition is done  during problem analysis where the amount of type of resources  are predicted , in this point if the analysis and predictions  is not based on facts, expert guidance and experience from various projects then the requirements would change throughout the development process and may extend to maintenance phase . Un-stability or requirements increases the cost degrades overall quality and reduces the productivity. Hence great care should be taken during the initial phase of problem identification & problem analysis.

New cards

Explore top notes

note Note
studied byStudied by 12 people
... ago
5.0(1)
note Note
studied byStudied by 158 people
... ago
5.0(2)
note Note
studied byStudied by 32 people
... ago
5.0(1)
note Note
studied byStudied by 37 people
... ago
5.0(2)
note Note
studied byStudied by 25 people
... ago
5.0(1)
note Note
studied byStudied by 14 people
... ago
5.0(1)
note Note
studied byStudied by 8545 people
... ago
4.6(46)

Explore top flashcards

flashcards Flashcard (95)
studied byStudied by 20 people
... ago
5.0(1)
flashcards Flashcard (24)
studied byStudied by 61 people
... ago
5.0(2)
flashcards Flashcard (24)
studied byStudied by 4 people
... ago
4.0(1)
flashcards Flashcard (72)
studied byStudied by 6 people
... ago
5.0(1)
flashcards Flashcard (66)
studied byStudied by 522 people
... ago
4.9(12)
flashcards Flashcard (44)
studied byStudied by 12 people
... ago
5.0(2)
flashcards Flashcard (23)
studied byStudied by 32 people
... ago
5.0(1)
flashcards Flashcard (39)
studied byStudied by 2 people
... ago
5.0(1)
robot