29 March 2012

What is Requirement Engineering

What is Requirement?
Ans: It may range from a high-level abstract statement of a service or of a system constraint to a detailed mathematical functional specification. Its Begin from Communication and continues into the modelling.

What is Requirement Engineering?
  • The process of establishing the services that the customer requires from a system and the constraintunder which it operates and is developed.
  • Requirement reflects the needs of customer for a system that serves a certain purpose such as controlling a device, placing an command or finding information.
  • The process of finding out, analyzing, documenting and checking these services and constrains is called requirement engineering (RE).
  • Bridge to design and construction.
Example of Types of Requirement

Testing and Deployment Principles

Testing Principles
  • All tests should be traceable to customer requirements
  • Tests should be planned long before testing begins
  • Testing should begin “in the small” and progress toward testing “in the large”
Deployment Principles
  • Customer expectation for the software must be managed
  • A complete delivery package should be assembled and tested
  • A support government must be established before the software is delivered
  • Appropriate instructional materials must be provide to end user
  • Buggy software should be fixed first, delivered later

Coding principles for Software Project

Preparation : Before writing code

  • Understand the problem you’re trying to solve
  • Understand basic design principles and concepts
  • Pick a programming language that meets the need s of the software to be built and the environment in which it will operate
  • Create a set of unit tests that will be applied once the coding is complete for each component

Coding: When writing code

  • Constrain your algorithm by following structured programming practice
  • Select the data structure that will meet the needs of design
  • Understand the software architecture and create interfaces that are consistent with it
  • Select meaningful variable name
  • Create visual layout

Modeling Principles for Software Project

Analysis Modelling Principles
  1. The information domain of a problem must be represented
  2. The functions that the software performs must be defined
  3. The behaviour of the software must be represented
  4. The models that depict information, function and behaviour must be partitioned is a manner that uncovers detail a layered or hierarchical fashion
  5. The analysis task should move from essential information toward implementation detail
Design Modelling Principles
  1. Design should be traceable to the analysis model
  2. Always consider the architecture of the system to be built
  3. Design of data is as important as design of processing functions
  4. Interface must be designed with care
  5. Component level design should be functionally independent
  6. Design representation should be easily understandable
  7. The design should be developed iteratively. With each iteration, the designer should strive for greater simplicity

Planning Principles for Software Project

  1. Understand the scope of the project
  2. Involve the customer in the planning activities
  3. Recognize that planning is iterative
  4. Estimate based on what you know
  5. Consider risk as you define the plan
  6. Be realistic
  7. Define how you intend to ensure quality
  8. Track the plan frequently and make adjustment as required

Software Engineering Practice

  • Understand the problem (communication and analysis)
  • Plan a solution (modelling and software design)
  • Carry out the plan (code generation)
  • Examine the result for accuracy (testing and quality assurance)
Core principles for Software Engineering :
  • The reason it all exists
  • KISS! (Keep It Simple Stupid)
  • Maintain the vision
  • Be open to the future
  • Plan ahead for reuse
  • Think!

what is communication

Main Business Communication principles

Business communication is the communication between the people in the organization for the purpose of carrying out the business activities.

A business can flourish when all objectives of the organization are achieved effectively. For efficiency in an organization, all the people of the organization must be able to convey their message properly.

The exchange of ideas and understanding within and outside the organization to achieve the business goals is known as business communication.

Communication Skills Needed in Business

  • Speaking well
  • Writing well
  • Displaying proper etiquette (manners)
  • Listening attentively

The Basic Forms Of Communication

  • Nonverbal communication:
    • Facial
    • Gesture
    • Vocal characteristic
    • Personal appearance
    • Touching behavior
    • Use time and space
  • Verbal Communication:
    • speaking and writing
    • Listening and Reading


 







Why Business Needs to Communicate?

  • Communication is vital to every part of business.
Example for Employees:
- process information with computers,
- write messages,
- fill out forms,
- give and receive orders, and
- talk over the telephone.

Example for Executives:
- use written and oral messages to initiate business with customers and other companies and
- respond to incoming messages.

Oral communication is a major part of information flow.

Written communication:
- letters,
- email messages,
- memos
- reports, and
- internet documents.

Characteristics Of Effective Organizational Communication

  • An Open Communication Climate.
  • A Commitment to Ethical Communication.
  • An understanding of Intercultural Communication.
  • A Proficiency in Communication Technology.
  • An Efficient Flow of Communication Message.

Communication Network of the Organization

Two forms of network in an organization: 1) Formal. 2) Informal

Formal: The business has major, well-established channels of information flow. These are the formal channels – the main lines of operational communication (both internal and external). Specifically, the flow includes the:
- upward,
- horizontal (lateral), and
- downward movements of information by
- report,
- email,
- records and
- such within the organization.

It also includes:
- orders, instructions, and messages: down the authority structure;
- working information: through the organization’s email or intranet; and
- extremely directed messages: sales presentations, advertising, and publicity.

Informal:The informal network is a secondary network consisting primarily of personal communication. It comprises thousands of personal communications that support the formal communication network of a business. Informal network is not a single network but a smaller networks consisting of groups of people.

it carries much gossip and rumor, for this is the nature of human conversation. Wise managers recognize the presence of the grapevine. That is, they keep in touch with the grapevine and turn it into a constructive tool.

Communication Barriers between People:

  • Difference in perception.
  • Incorrect filtering.
  • Language problem.
  • Poor listening.
  • Different emotional states.
  • Different background.

Communication Barriers between Organization:

  • Information Overload
  • Inattention
  • Time pressure
  • Distraction/Noise
  • Emotions
  • Complexity of Organizational structure
  • Poor retention
  • Differing Status
  • Lack Of Trust
  • Inadequate communication structure
  • Incorrect Choice Of Medium
  • Closed communication Climate

How To Improve Communication skills

A Good Communicator should have these five traits:
  1. Perception.
  2. Precision.
  3. Credibility.
  4. Control.
  5. Congeniality.

Importance of Business Communication to you and for Business

  • High communication skill and leads high income.
  • Improving your commutation ability helps to improve your overall success.
  • Communication is vital to every part of business.
  • Different professional use communication as a tool to correspond with their colleagues, superiors and juniors.
  • Business managers use communication to contact their stakeholders.
  • Information is managed and exchanged thorough many oral, written and electronic form.


28 March 2012

What is software engineering


1.What is software?

Ans:Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market.

2.What is software engineering?

Ans:Software engineering is an engineering discipline that is concerned with all aspects of software production.

3.What is the difference between software engineering and system engineering?

Ans:System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this more general process


4.What are the key challenges facing software engineering?

Ans:Coping with increasing diversity, demands for reduced delivery times and developing trustworthy software.

5.What are the costs of software engineering?

Ans:Roughly 60% of software costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs.

6.What are the best software engineering techniques and methods?

Ans:While all software projects have to be professionally managed and developed, different techniques are appropriate for different types of system. For example, games should always be developed using a series of prototypes whereas safety critical control systems require a complete and analyzable specification to be developed. You can’t, therefore, say that one method is better than another.

7.What differences has the web made to software engineering?

Ans:The web has led to the availability of software services and the possibility of developing highly distributed service-based systems. Web-based systems development has led to important advances in programming languages and software reuse.

8.What are the attributes of good software?

Ans:Good software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable.

9.What is the difference between software engineering and computer science?

Ans:Computer science focuses on theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.

10.What are the fundamental software engineering activities?

Ans:Software specification, software development, software validation and software evolution.

26 March 2012

The Rational Unified Process Model

Rational Unified Process:
The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the Unified Process.

•Inception
The primary objective is to scope the system adequately as a basis for validating initial costing and budgets. In this phase the business case which includes business context, success factors (expected revenue, market recognition, etc.), and financial forecast is established. To complement the business case, a basic use case model, project plan, initial risk assessment and project description (the core project requirements, constraints and key features) are generated. After these are completed, the project is checked against the following criteria:
  • Stakeholder concurrence on scope definition and cost/schedule estimates.
  • Requirements understanding as evidenced by the fidelity of the primary use cases.
  • Credibility of the cost/schedule estimates, priorities, risks, and development process.
  • Depth and breadth of any architectural prototype that was developed.
  • Establishing a baseline by which to compare actual expenditures versus planned expenditures.
If the project does not pass this milestone, called the Lifecycle Objective Milestone, it either can be cancelled or repeated after being redesigned to better meet the criteria.

Elaboration The primary objective is to mitigate the key risk items identified by analysis up to the end of this phase. The elaboration phase is where the project starts to take shape. In this phase the problem domain analysis is made and the architecture of the project gets its basic form.

The outcome of the elaboration phase is:

  • A use-case model in which the use-cases and the actors have been identified and most of the use-case descriptions are developed.
  • The use-case model should be 80% complete.
  • A description of the software architecture in a software system development process.
  • An executable architecture that realizes architecturally significant use cases.
  • Business case and risk list which are revised.
  • A development plan for the overall project. Prototypes that demonstrably mitigate each identified technical risk.
  • A preliminary user manual (optional)
This phase must pass the Lifecycle Architecture Milestone criteria answering the following questions:
  • Is the vision of the product stable?
  • Is the architecture stable?
  • Does the executable demonstration indicate that major risk elements are addressed and resolved?
  • Is the construction phase plan sufficiently detailed and accurate?
  • Do all stakeholders agree that the current vision can be achieved using current plan in the context of the current architecture?
  • Is the actual vs. planned resource expenditure acceptable?
If the project cannot pass this milestone, there is still time for it to be cancelled or redesigned. However, after leaving this phase, the project transitions into a high-risk operation where changes are much more difficult and detrimental when made.
The key domain analysis for the elaboration is the system architecture.

•Construction
The primary objective is to build the software system. In this phase, the main focus is on the development of components and other features of the system. This is the phase when the bulk of the coding takes place. In larger projects, several construction iterations may be developed in an effort to divide the use cases into manageable segments that produce demonstrable prototypes.
This phase produces the first external release of the software. Its conclusion is marked by the Initial Operational Capability Milestone.

•Transition
The primary objective is to 'transit' the system from development into production, making it available to and understood by the end user. The activities of this phase include training the end users and maintainers and beta testing the system to validate it against the end users' expectations. The product is also checked against the quality level set in the Inception phase.
If all objectives are met, the Product Release Milestone is reached and the development cycle is finished.

•Develop software iteratively
–Plan increments based on customer priorities and deliver highest priority increments first.

•Manage requirements
–Explicitly document customer requirements and keep track of changes to these requirements.

•Use component-based architectures
–Organize the system architecture as a set of reusable components.

•Visually model software
–Use graphical UML models to present static and dynamic views of the software. 

•Verify software quality
–Ensure that the software meet’s organizational quality standards.

•Control changes to software
–Manage software changes using a change management system and configuration management tools.

You can also view:
1. Boehms Spiral Process Model
2. Rapid Application Development-RAD
3. Prototyping Process Model
4. Incremental Process Model
5. Component Based Software Engineering
6. Evolutionary Process Development Model
7. Waterfall Process Model
8. Software Process Framework Activity

Boehm’s Spiral Process Model

Spiral model:
The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Also known as the spiral life-cycle model (or spiral development), it is a systems development method (SDM) used in information technology (IT). This model of development combines the features of the prototyping and the waterfall model. The spiral model is intended for large, expensive and complicated projects.

 History:
The spiral model was defined by Barry Boehm in his 1986 article "A Spiral Model of Software Development and Enhancement". This model was not the first model to discuss iterative development. As originally envisioned, the iterations were typically 6 months to 2 years long. Each phase starts with a design goal and ends with the client (who may be internal) reviewing the progress thus far. Analysis and engineering efforts are applied at each phase of the project, with an eye toward the end goal of the project. 

 •Objective setting
-Specific objectives for that phase of the project are defined. Constraints on the process and the product are identified and a detailed management  plan  is  drawn  up.  Project  risks  are  identified.  Alternative  strategies, depending on these risks, may be planned.

 •Risk assessment and reduction
-For each of the identified project risks, a detailed analysis is carried out. Steps are taken to reduce the risk. For example, if there is a risk that the requirements are inappropriate, a prototype system may be developed.

 •Development and validation
-After risk evaluation, a development model for the system is chosen. For example, throwaway prototyping may be the best development approach if user interface risks are dominant. If safety risks are the main consideration, development based on formal transformations may be the most appropriate process, and so on. If the main identified risk is sub-system integration, the waterfall model may be the best development model to use.
•Planning 
-The project is reviewed and a decision made whether to continue with a further loop of the spiral. If it is decided to continue, plans are drawn up for the next phase of the project.


•Main characteristics
 –Also a hybrid model that support process iteration.
–The process is represented as a spiral, each loop in the spiral representing a process phase.
–Risk is explicitly taken into consideration.

•Advantages
–Risk reduction mechanisms are in place.
–Supports iteration and reflects real-world practices –Systematic approach.

•Disadvantages:
–Requires expertise in risk evaluation and reduction.
–Complex, relatively difficult to follow strictly.
–Applicable only to large systems

•Applicability
–Internal development of large systems.

You can also view:
1. Rational Unified Process Model.
2. Rapid Application Development-RAD
3. Prototyping Process Model
4. Incremental Process Model
5. Component Based Software Engineering
6. Evolutionary Process Development Model
7. Waterfall Process Model
8. Software Process Framework Activity

Rapid Application Development (RAD)


RAD, or rapid application development, is an object-oriented approach to systems development that includes a method of development as well as software tools

•RAD is used when
–The team includes programmers and analysts who are experienced with it.
–Users are sophisticated and highly engaged with the goals of the company.

•Negative Aspect
- RAD is based on Object Oriented approach.
- If commitment is lacking RAD will fail.
- RAD is not appropriate when technical risks are high, e.g. this occurs when a new application makes heavy use of new technology.

You can also view:
1. Boehms Spiral Process Model
2. Rational Unified Process Model
3. Rapid Application Development-RAD
4. Prototyping Process Model
5. Incremental Process Model
6. Component Based Software Engineering
7. Evolutionary Process Development Model
8. Waterfall Process Model
9. Software Process Framework Activity

The Prototyping Process Model



•Gather requirements
•Quick design focusing on what will be visible to user – input & output formats
•Process iterated until customer & developer satisfied

– then throw away prototype and rebuild system to high quality.
- Insufficient analysis.
- Excessive development time of the prototype.
- High expectations for productivity with insufficient effort.

You can also view:
1. Boehms Spiral Process Model
2. Rational Unified Process Model
3. Rapid Application Development-RAD
4. Prototyping Process Model
5. Incremental Process Model
6. Component Based Software Engineering
7. Evolutionary Process Development Model
8. Waterfall Process Model
9. Software Process Framework Activity

The Incremental Process Model

•Main characteristics
–Hybrid model that combines elements of the waterfall and evolutionary paradigms.
–The specification, design, and implementation phases are broken in smaller increments.

•Advantages
–Provides better support for process iteration.
–Reduces rework in the software construction process.
–Allows early delivery of parts of the system.
–Supports easier integration of sub-systems.
–Lower risk of project failure.
–Delivery priorities can be more easily set.

•Disadvantages
–Mapping requirements to increments may not be easy.
–Common software facilities may be difficult to identify.
–Some decisions on requirements may be delayed.

•Applicability:
–When it is possible to deliver the system “part-by-part” .

You can also view:
1. Boehms Spiral Process Model
2. Rational Unified Process Model
3. Rapid Application Development-RAD
4. Prototyping Process Model
5. Incremental Process Model
6. Component Based Software Engineering
7. Evolutionary Process Development Model
8. Waterfall Process Model
9. Software Process Framework Activity

Component Based Software Engineering

•Main characteristics
–Makes intensive use of existing reusable components.
–The focus is on integrating the components rather than on creating them from the scratch.

•Advantages
–Reduces considerably the software to be developed “in-house”.
–Allows faster delivery.
–In principle, more reliable systems, due to using previously tested components.

•Disadvantages
–agreement in requirements are needed.
–Less control over the system’s evolution

•Applicability:
–When there is a pool of existing components that could satisfy the requirements of the new product.
–Emerging trend: integration of web services from a range of suppliers.

You can also view:
1. Boehms Spiral Process Model
2. Rational Unified Process Model
3. Rapid Application Development-RAD
4. Prototyping Process Model
5. Incremental Process Model
6. Component Based Software Engineering
7. Evolutionary Process Development Model
8. Waterfall Process Model
9. Software Process Framework Activity

25 March 2012

The Evolutionary Process Development Model

•Main characteristics
–Feedback from the user is used throughout the entire process.
–The software product is refined through many versions

•Advantages
–Deals constantly with changes.
–Provides quickly an initial version of the system.
–Involves all development teams

•Disadvantages:
–Quick fixes may be involved
–“Invisible” process, not well-supported by documentation.
–The system’s structure can be corrupted by continuous change.

•Disadvantages [cont’d]
–Special tools and techniques may be necessary
–The client may have the impression the first version is very close to the final product and thus be less patient.

•Applicability
–When requirements are not well understood.
–Good for small and medium-sized software systems.

You can also view:
1. Boehms Spiral Process Model
2. Rational Unified Process Model
3. Rapid Application Development-RAD
4. Prototyping Process Model
5. Incremental Process Model
6. Component Based Software Engineering
7. Evolutionary Process Development Model
8. Waterfall Process Model
9. Software Process Framework Activity

The Waterfall Process Model

•Main characteristics:
–Also called classic software life cycle or sequential model
–Process activities (phases/stages) are clearly separated

•Advantages
–Organized approach, provides robust separation of phases.
–Reflects common engineering practice.

•Disadvantages:
– Doesn't cope well with changes required by the client.
–Development teams might wait for each other.
–A working version of the product is available only late.

•Applicability:
–When requirements are well known and few changes are likely to be needed.
–Can be used also for parts of larger software systems.

You can also view:
1. Boehms Spiral Process Model
2. Rational Unified Process Model
3. Rapid Application Development-RAD
4. Prototyping Process Model
5. Incremental Process Model
6. Component Based Software Engineering
7. Evolutionary Process Development Model
8. Waterfall Process Model
9. Software Process Framework Activity

what is Software process descriptions

•When we describe and discuss processes, we usually talk about the activities in these processes such as specifying a data model, designing a user interface, etc. and the ordering of these activities.

•Process descriptions may also include:

–Products, which are the outcomes of a process activity;

–Roles, which reflect the responsibilities of the people involved in the process;

–Pre- and post-conditions, which are statements that are true before and after a process activity has been enacted or a product produced.

Software Process Models

•A structured set of activities required to develop a software system.
•Many different software processes but all involve:

–Specification – defining what the system should do;

–Design and implementation – defining the organization of the system and implementing the system;

–Validation – checking that it does what the customer wants;

–Evolution – changing the system in response to changing customer needs.

Software Process Framework Activity

Layered Technology of Software Engineering

•For establish the sound engineering principles we have to ensure the layers of S/W engineering:

Quality Focus
At first ensure the professional quality


Process
Enable timely delivery through framework and work products(models, docs, report etc.)
Ensure technical method
Ensure the model and change is properly managed

Method
Define “how to” ’s and define broad array of tusks
Include communication, analysis, designing, program construction, testing and support.

Tools
Provide support for the process and method.

Software engineering Ethics Issues of Professional Responsibility

•Confidentiality
–Engineers should normally respect the confidentiality of their employers or clients irrespective of whether or not a formal confidentiality agreement has been signed.

•Competence
–Engineers should not misrepresent their level of competence. They should not knowingly accept work which is out with their competence.

•Intellectual property rights
–Engineers should be aware of local laws governing the use of intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is protected.

•Computer misuse
–Software engineers should not use their technical skills to misuse other people’s computers. Computer misuse ranges from relatively trivial (game playing on an employer’s machine, say) to extremely serious (dissemination of viruses).

what is Software engineering Ethics

Like other engineering disciplines,  Software engineering is carried out within a social and legal framework that limits the freedom of people working in that area. As a software engineer, you must accept that your job involves wider responsibilities than simply the application of technical skills. You must also behave in an ethical and morally responsible way if you are to be respected as a professional engineer.

 It goes without saying that you should uphold normal standards of honesty and integrity. You should not use your skills and abilities to behave in a dishonest way or in a way that will bring disrepute to the software engineering profession. However, there are areas where standards of acceptable behavior are not bound by laws but by the more tenuous notion of professional responsibility.

Some of these are:
1. Confidentiality You should normally respect the confidentiality of your employers or clients irrespective of whether or not a formal confidentiality agreement has been signed.
2. Competence You should not misrepresent your level of competence. You should not knowingly accept work that is outside your competence.
3. Intellectual property rights You should be aware of local laws governing the use of intellectual property such as patents and copyright. You should be careful to ensure that the intellectual property of employers and clients is protected.
4. Computer misuse You should not use your technical skills to misuse other people’s computers. Computer misuse ranges from relatively trivial (game playing on an employer’s machine, say) to extremely serious (dissemination of viruses or other malware).

Other Hand:
Software engineering involves wider responsibilities than simply the application of technical skills.

• Software engineers must behave in an honest and ethically responsible way if they are to be respected as professionals.

• Ethical behavior is more than simply upholding the law but involves following a set of principles that are morally correct.

17 March 2012

Key points

Software engineering is an engineering discipline that is concerned with all aspects of software production.

•Essential software product attributes are maintainability, dependability and security, efficiency and acceptability.

•The high-level activities of specification, development, validation and evolution are part of all software processes.

•The fundamental notions of software engineering are universally applicable to all types of system development.

•There are many different types of system and each requires appropriate software engineering tools and techniques for their development.

•The fundamental ideas of software engineering are applicable to all types of software system.

Web software engineering

•Software reuse is the dominant approach for constructing web-based systems.

–When building these systems, you think about how you can assemble them from pre-existing software components and systems.

•Web-based systems should be developed and delivered incrementally.

–It is now generally recognized that it is impractical to specify all the requirements for such systems in advance.

•User interfaces are constrained by the capabilities of web browsers.

–Technologies such as AJAX allow rich interfaces to be created within a web browser but are still difficult to use. Web forms with local scripting are more commonly used.

what is cloud computing


cloud computing:Cloud computing is a technology that uses the internet and central remote servers to maintain data and applications. Cloud computing allows consumers and businesses to use applications without installation and access their personal files at any computer with internet access. This technology allows for much more efficient computing by centralizing storage, memory, processing and bandwidth.

A simple example of cloud computing is Yahoo email, Gmail, or Hotmail etc. You dont need a software or a server to use them. All a consumer would need is just an internet connection and you can start sending emails. The server and email management software is all on the cloud ( internet) and is totally managed by the cloud service provider Yahoo , Google etc. The consumer gets to use the software alone and enjoy the benefits.

web engineering

•The Web is now a platform for running application and organizations are increasingly developing web-based systems rather than local systems.

•Web engineering allow application functionality to be accessed over the web.

Cloud computing is an approach to the provision of computer services where applications run remotely on the ‘cloud’.

Instead of installing a suite of software for each computer, you'd only have to load one application. That application would allow workers to log into a Web-based service which hosts all the programs the user would need for his or her job. Remote machines owned by another company would run everything from e-mail to word processing to complex data analysis programs. It's called cloud computing.

–Users do not buy software, pay according to use.

what is the fundamental principles for software engineering

•Some fundamental principles apply to all types of software system, irrespective of the development techniques used:

–Systems should be developed using a managed and understood development process. Of course, different processes are used for different types of software.

–Dependability and performance are important for all types of system.

–Understanding and managing the software specification and requirements (what the software should do) are important.

–Where appropriate, you should reuse software that has already been developed rather than write new software.

Application types

•Stand-alone applications

–These are application systems that run on a local computer, such as a PC. They include all necessary functionality and do not need to be connected to a network.

•Interactive transaction-based applications

–Applications that execute on a remote computer and are accessed by users from their own PCs or terminals. These include web applications such as e-commerce applications.

•Embedded control systems

–These are software control systems that control and manage hardware devices.Numerically, there are probably more embedded systems than any other type of system.

•Batch processing systems

–These are business systems that are designed to process data in large batches. They process large numbers of individual inputs to create corresponding outputs.

•Entertainment systems

–These are systems that are primarily for personal use and which are intended to entertain the user.

•Systems for modelling and simulation

–These are systems that are developed by scientists and engineers to model physical processes or situations, which include many, separate, interacting objects.

Software engineering diversity

•There are many different types of software system and there is no universal set of software techniques that is applicable to all of these.

•The software engineering methods and tools used depend on the type of application being developed, the requirements of the customer and the background of the development team.

General issues that affect most software

•Heterogeneity

–Increasingly, systems are required to operate as distributed systems across networks that include different types of computer and mobile devices.

•Business and social change

–Business and society are changing incredibly quickly as emerging economies develop and new technologies become available. They need to be able to change their existing software and to rapidly develop new software.

•Security and trust

–As software is intertwined with all aspects of our lives, it is essential that we can trust that software.

Content are helpful for you?

Follow by Email