What is a system software and application software?
A little while ago a friend asked me what kind of programming I was interested in. I ended up explaining the difference between system programming and application programming: In application programming programmers build applications. Application programs include websites, video games, iPhone applications, Microsoft Word, Microsoft Excel, Web browsers and other programs that people use for entertainment, communications, accessing information, organizing, and getting work done. Application software interacts with people or users. Systems programming is creating technology that programmers use to build applications. In order for an applications programmer to build an application, he needs an operating system, a programming language, and other tools to get the application built, tested, and working. System programming includes creating and working on: operating systems database systems programming languages software libraries software that controls hardware very directly Software exists in layers. Application software runs on top of and interacts with system software. System software runs on top of and interacts with the physical hardware. Another way of looking at it: People make application software do work. Application software makes system software do work. System software makes the physical machine do work. TAKEN FROM HERE:http://nickmudge.info/?post=107
System programming is done for supporting or for executing another program.ie, OS , here the programming is done for supporting or executing another programs.
For eg: OS it make user friendly because of the execution of 1000 or more program inside that we cant see.
Programming language are use to program or mold for any particular task.For eg: wordprocessing software like MS word etc
important attributes are maintainability, dependability, performance and usability. Other attributes that may be significant could be reusability (can it be reused in other applications), distributability (can it be distributed over a network of processors), portability (can it operate on multiple platforms) and inter-operability (can it work with a wide range of other software systems). Decompositions of the 4 key attributes e.g. dependability decomposes to security, safety, availability, etc.
What are the applications of waterfall process model?
1)whenever we are developing a small application we go for waterfall model.
2)when we have a short term project.
3)when we are sure that the requirement never changes.
These are the stages in which we adopt the waterfall model.
Can you do software engineering after taking commerce?
Um, unless you're working out of your garage, it's highly unlikely. Even if you have a great deal of personal experience in software development/programming/design, you're not likely to jump right into an engineering position, even with a computer science degree. Verifiable professional experience, on the other hand, is a totally different matter.
Spyware is malware that is essentially a form of social engineering.
How do you draw a structure chart?
When I was a student I did it with paper, pencil and a flowchart symbol template.
What are the differences between pass and phase in compiler?
When we talk about the phases we talk about the steps compiler should do in order to finish it job. For example phases could be creating local variables symbol table, generating parsing tree, lexical checking, optimization, etc.
When we talk about passes we talk about times some operation was repeated. For example there are 2-passes Assembler compilers. It means that before giving the results it repeats some steps twice, most of time times optimization step. The more passes you put the better quality result you get. The same applies to music and video encoding.
For example:
Source code:
i++;
i++;
i++;
1st step (pass):
i = i + 1;
i = i + 1;
i = i + 1;
2nd step (pass):
i = i + 3;
Most of compiler before generating results converts source code some kind inner language that is easier to parse, check in later steps.
As you can see two-pass compiler would generate better quality code, than one-pass compiler, but the first one would be faster to compile.
Different between object oriented and function oriented design strategy?
Table 5.2.S. No.Functional-oriented ApproachObject-oriented Approach1.In the functional-oriented design approach, the basic abstractions, which are given to the user, are real-world functions, such as sort, merge, track, display, etc.In the object-oriented design approach, the basic abstractions are not the real-world functions, but are the data abstraction where the real-world entities are represented, such as picture, machine, radar system, customer, student, employee, etc.2.In function-oriented design, functions are grouped together by which a higher-level function is obtained. An example of this technique is SA/SD.In this design, the functions are grouped together on the basis of the data they operate on, such as in class person, function displays are made member functions to operate on its data members such as the person name, age, etc.3.in this approach, the state information is often represented in a centralized shared memory.In this approach, the state information is not represented in a centralized shared memory but is implemented/distributed among the objects of the system.
What is the disadvantage of iterative waterfall model?
Major difference between waterfall and iterative model is that waterfall model has a linear process in which full product is available after the last phase, while incremental model full product is available after several such phases.
waterfall model is good when we have a clear understanding of requirements.
Incremental model is good when we have to deliever the final product wihin certain timeline and we have very less number of programmers available to complete the product in time, so basic idea is to deliever a working partial product within time and provide it's additional functionalities later.
Various steps involved in the software development?
Design is a creative process that occurs in many settings. The steps outlined below offer a structured format for a formal design process based on models from industry.
Analyze the situation
Before beginning the design, sort out what problem you are trying to address.
Write a brief
Write a short statement giving the general outline of the problem to be solved.
Research the problem
Sometimes a problem can be solved "straight out of your head," but in most cases you will need to gain some new information and knowledge.
Write a specification
This detailed description of the problem spells out what the design must achieve and what limitations will affect the final solution.
Work out possible solutions
Combine your ideas with information obtained from your research to suggest several possible design solutions. Sketch several possibilities on paper.
Select a preferred solution
Decide which solution to develop. Although the chosen solution should, ideally, be the one that best satisfies the specifications, other constraints such as time, cost, or skills may limit the decision.
Prepare working drawings and plan ahead
Draw the chosen design including all the details that are important to its construction.
Construct a prototype
Make the product. In industry a model is usually built first and the final product is developed from it, but in most classrooms, the model is the final product.
Test and evaluate the design
Testing is ongoing as the construction progresses, but a final test of the entire system or model proves if the project does the job for which it is designed. Look back at the specifications and check the requirements carefully. Ask such questions as: How well does the design function? Does the design look good? Is the product safe to use? Were suitable materials used? How could I have improved on my design?
Write a report
The report provides evidence of your work in analysis, planning, designing, carrying out the practical work, evaluating, and communicating.
What Does a software engineer do?
A software engineer is a person who builds or designs software.
A software engineer must, of course, be a good programmer, be well versed in data structures and algorithms, and be fluent in one or more programming languages.
What motivates you to apply for this job?
Sales Job: "The money."
HR Job: "I like helping people."
Teaching Job: "I want to give others the same sort of education I had"
Mechanic Job: "I like cars."
Summary: There are as many answers as there are jobs and the answer is always glib and obvious.
Why should you use waterfall model in software projects?
Waterfall model tends to consume a lot more time compared to other software development models though it is able to pinpoint definite starting and ending points for a given project. This model assumes the requirements to remain static during the life of the project, so there is little or no chance of incorporating new changes to the software once work begins. If changes are tried to be incorporated it leads to more confusion and further delays. Its strong points lie in the fact that it is sequential, so there would be no confusion on the steps and the processes are straight down--no need to worry about so many conditions while working on a project. Additionally, this type of model tends to pack up on so much documentation. Therefore, such tends to be useful for future code revisions and reference. However, its drawbacks become apparent in the length of time a project will be developed and the cost it is able to consume.
List out evolutionary software process model in software engineering?
General Software Process Models are
1. Waterfall model: Separate and distinct phases of
specification and development.
2. Prototype model.
3. Rapid application development model (RAD).
4. Evolutionary development: Specification,
development and validation are interleaved.
5. Incremental model.
6. Iterative model.
7. Spiral model.
8. Component-based software engineering
What is it called when a criterion is true if either individual criterion is true?
Criteria is true if either individual criterion is true is called "or" in Logic. (Criteria is plural form of criterion)
Can software be of good quality if it is not reliable?
careful design, proper development process, thorough testing but mostly a programmer who has insight and experience.
What is the salary of software engineer abroad in rupees?
The salary of software engineer in pakistan is 643544 rupees
How the waterfall model and prototyping model can be accommodated in the spiral process model?
Expalin different between waterfall model and prototyping model ? Expalin different between waterfall model and prototyping model ?
What is the difference between system analyst and programmer software engineer?
A title is just a title and what the people do under those titles can differ from company to company, but in general, a computer programmer translates a design into an actual computer program. A computer analyst, or more commonly called a systems analyst or business analyst or software architect will analyze a company process and design a software package that will improve that process. The systems analysts are usually individuals that bridge the gap between the real world and the programming world. They can speak "both languages" by helping the computer programmers understand the business process and by helping the software users understand the computer programming process. The two titles are similar to the difference between a home builder and an architect.
How do you engineer a software?
As simply as possible, developing and testing small pieces over short intervals, getting frequent feedback from the users or the other stakeholders who have envisioned the product, by as small a team as can do the job initially. One or a few talented and probably more expensive resources up front are worth a lot more than many mediocre resources. If you can be flexible, then allow flexible hours, relax the deadline a little, and offer a percentage of the profits. That way you may be able to get someone good who already has a job but wants to get in on the business; i.e. you may be able to get them for a lower price and allow them to work nights and weekends. The average resources can come later when it is time to do more simple maintenance tasks. Upfront you want someone with maturity, development talent, creativity, and the ability to deliver. You want to get a solid technical person with a good reputation (job wise and in general), and then trust them to make the right technical decisions, versus trusting Gartner Group, tech magazines, or what "everyone else seems to be doing." Try to define your product (and sell to your market) in such a way that you are able to get interest in something that you would be able to deliver in the course of 3 months or so -- 6 at most. Try to avoid getting hooked into developing something that takes a year or more to develop unless people have signed on the dotted line already and paid for at least part of its development. Perhaps have those with a vested interest pay when certain development milestones are reached and demoed to them, to show their good faith and true interest in the product. (This is, of course, if your product is for a vertical market versus a horizontal one.)
What are the software engineering project's phases?
A process model for software engineering is chosen based on the nature of the project and application the methods and tools to be used and the controls and deliverables that are required.
All software development can be characterized as a problem solving loop in which four distinct stage are encountered, these are status quo, problem definition, technical development, and solution integration, status quo represents the current state of affairs, problem definition identifies the specific problem to be solved, technical development solves the problem through the application of some technology, and solution integration delivers the result to those who requested the solution in the first place.
Technical development
Status quo
Solution integration
Problem definition
Figure: The phases of a problem solving loop
There are several models used in S.E these are –
i. The linear sequential model.
ii. The prototype model.
iii. The RAD model.
iv. The increment model.
v. The spiral model.
vi. The win win spiral model
vii. The concurrent development model
viii. The component based development model
#The linear sequential model/waterfall model-
The LSM sometime called the classic lifecycle or the waterfall model. This model suggests a systematic sequential approach to software development that designs at the system level and progress through analysis, design, coding, testing and support. The LSM encompasses the following activities-
System /information engineering and modeling .Because software is always part of a larger system the work begins by establishing requirements for all system elements and then allocating some subset of these requirements to software. This system view is essential when software must interact with other elements such as hardware, people and database. System engineering and the analysis encompass requirements gathering at the system level with a small amount of top level design and analysis. Information engineering encompasses requirements gathering at the strategic business level and the business area level.
i.Software requirements analysis-
The requirements gathering process is intensified and focused specially on software. To understand the nature of the problem to be built, the software engineering must understood the information domain for the software as well as required function. Behavior, performance and interface requirements for both the system and the software are documented and received with the customer.
ii.Design-
Software design is actually a multistep process that focuses on four distinct attributes of a program. Data structures, software architecture, interface representation and procedural detail the design process translates requirements into a design which documented and becomes part of the software configuration.
iii.Code generation-
The design must be translated into a machine readable form. The code generation steps perform this task. If design is performed in a detailed manner code generation can be accomplished automatically.
iv.Testing-
Once code has been generated, program begins. The testing process focuses on the logical internals of the software, ensuring that all function externals that is conducting tests to uncover errors and ensure that defined input will produce actual result that agree with required results.
v. Support-
System/information engineering
Analysis
Design
Code
Test
Software will undoubtedly undergo change often it is delivered to the customer change will occur because errors have been encountered because the software must be adapted to accommodate change in its external environment or because the customer requires functional or performance enhancements. Software support maintenance reapplied each of the proceeding phases to an existing program rather than a new one.
What is the definition of milestones in software engineering?
A milestone is a point some way through a project plan that indicates how far the project has progressed. A milestone deliverable refers to a tangible product that is produced signifying the reaching of the milestone.
What is development phase in software engineering?
It could be said that the Requirements specification is most important. If they are not done right then it undermines the rest of the development process. Errors at that point will get into the system and could cause problems and be difficult and costly to fix later on. So getting out as many problems as early as possible, will reduce problems later on.