Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
software_engineering 5 курс.doc
Скачиваний:
2
Добавлен:
09.11.2019
Размер:
500.22 Кб
Скачать

Text 1. Practical Procedures of Main Software Occupations Part 1

Software engineering has been one of the most impactful professions of the last 30 years and will continue to expand its boundaries into the next decades. Software development has been considered a socio-technical endeavour for some time. Over the last three decades, the engineering of software has become a very broad field, consequently the skills necessary to successfully work in this area thirty years ago may no longer apply. Software engineering has been roughly characterized as set of activities comprising system analysis, design, programming, testing, and maintenance. Logically, they are different tasks which are put together to achieve the objective of software construction and operation. The micro-level interpretation of these activities demands a set of abilities to carry them out effectively. The area of software engineering generally divides the skill requirements into two categories: “hard skills” and “soft skills”. Hard skills are the technical requirements and knowledge a person should possess to carry out a task; these skills include the theoretical foundations and practical experience that a person should have to comfortably execute the planned task.

Even though soft skills incorporate the psychological phenomena that include the personality types, social interaction abilities, communication, and personal habits, it is apparent that people imply that soft skills should complement the hard skills. Consequently, we should relate the job requirements or “hard skills” to personality requirements or “soft skills” for different positions such as system analysts, designers, programmers, testers, and maintainers, which reflect the various software life cycle phases.

System Analysis

The system analysis phase emphasizes the identification of high-level components in a real-world application and involves the de-composition of the software system into its main modules. The main product of the system analysis phase is a graphical and/or textual description, either informal or formal, of an abstract model of the application. System analysis demands a great deal of human interaction with users and clients. System analysts must be able to empathize with the users’ problems in order to fully understand their needs, hence interpersonal skills are highly desirable.

The main System Analyst soft skills requirements are:

  • communication skills;

  • interpersonal skills.

The main System Analyst hard skills requirements are:

  • liaising extensively with external or internal clients;

  • analyzing clients' existing systems;

  • translating client requirements into highly specified project briefs;

  • identifying options for potential solutions and assessing them for both technical and business suitability;

  • creating logical and innovative solutions to complex problems;

  • drawing up specific proposals for modified or replacement systems;

  • producing project feasibility reports;

  • working closely with developers and a variety of end users to ensure technical compatibility and user satisfaction;

  • overseeing the implementation of a new system;

  • planning and working flexibly to a deadline;

  • keeping up to date with technical and industry sector developments.

Software Design

Software designers should have the ability to see the big picture. They should be able to isolate relevant items from large quantities of fuzzy and imprecise data, which require the intuition to discern patterns.

The main Software Designer soft skills requirements are:

  • strong analytical and problem solving skills;

  • innovative.

The main Software Designer hard skills requirements are:

  • having the ability to craft scenarios, storyboards, information architectures, features and interfaces;

  • collaborating closely with management, engineers and fellow designers to evaluate and iterate on ideas and designs;

  • prototyping user experience and design ideas;

  • keeping up to date with technical and industry sector developments;

  • understanding business opportunities and assisting project team with respect to architecture of the design solution;

  • creating an architectural design with the necessary specifications for the hardware, software, and data;

  • working closely with system users to ensure that implementation meets customer requirements and is aligned to the system’s technical architecture;

  • developing, documenting and revising system design procedures;

  • participating in testing and evaluating the systems functionality to ensure successful integration;

  • determining hardware, software and network requirements of the software system;

  • assisting systems analyses, costing and bidding activities.

Exercise 3. Answer the following questions. Discuss the answers.

  1. Why has software engineering been one of the most impactful professions of the last 30 years?

  2. How has software development been considered for some time?

  3. How has software engineering been roughly characterized?

  4. What skills are required to achieve the objective of software construction and operation?

  5. What are “hard skills”? What do they include?

  6. What do “soft skills” incorporate?

  7. What does the system analysis emphasize and involve?

  8. What is the main product of the system analysis phase?

  9. What must system analysts be able to?

  10. What are the main system analyst soft skills requirements?

  11. What are the main system analyst hard skills requirements?

  12. What should software designers be able to?

  13. What are the main software designer soft skills requirements?

  14. What are the main software designer hard skills requirements?

Exercise 4. Give English equivalents to the following word combinations.

Досягти мети, найефективніша професія, ряд якостей, технічні вимоги та знання, теоретичні основи, тип особистості, здатність до соціальної взаємодії, особистісні звички, доповнювати діяльнісні характеристики, багато взаємодії з користувачами та клієнтами, деталізований проект, відповідність технічним вимогам, звіт про реалізованість проекту, в ногу з часом, відповідні елементи, неясні та неточні дані, розпізнавати моделі, розробляти план дій, тісно співробітничати, необхідні технічні вимоги, дії по оцінюванню та пропонуванні ціни.

Exercise 5. Find in the text the equivalents of the following words:

to require; aim (goal, purpose), to estimate (to judge), to guarantee, efficient, attempt (try, effort), approximately, to include, to recognize (to perceive), to accomplish (to attain), basis, to perform, to supervise (to superintend), a time limit.

Exercise 6. Memorize the following words and word combinations.

entail – спричиняти, викликати

stepwise – покроковий, поступовий

refinement – деталізація, уточнення

breadth – ширина, об’єм

acute – сильний, різкий; крайній, критичний

elaborate – детально (старанно) розробляти

flow chart – блок-схема

confer – порівнювати

random – зроблений (обраний) наздогад, випадковий, безладний

haphazard – випадковий, необдуманий, безсистемний

log – реєструвати (за допомогою комп’ютера)

asset – позитивна якість, перевага

script – скрипт; файл, який містить послідовність операторів SQL

medium – середнє число, засіб

timelines – строки

triage – сортування

mitigate – пом’якшувати, послабляти, зменшувати

stakeholder – зацікавлена сторона, акціонер

enhancement – покращення, посилення, розширення

with regard to – стосовно, відносно

comply – погоджуватися

omit – нехтувати, опускати

helpdesk – служба технічної підтримки

myriad – незліченна кількість

Exercise 7. Read and translate the text.

Text 2. Practical Procedures of Main Software Occupations

Part 2

Programming

Programming involves translating a refined version of the design into programs. This phase entails the identification of control structures, relevant variables and data structures, as well as a detailed understanding of the syntax and specifics of a programming language. Programmers need to follow an iterative stepwise refinement process that is mostly top-down, breadth first. Thus, programmers should attend to details and keep a logical and analytical thinking style.

The main Software Programmer soft skills requirements are:

  • ability to work independently;

  • strong analytical & problem solving skills;

  • pay thorough and acute attention to details.

The main Software Programmer hard skills requirements are:

  • participates in development efforts, elaborates and documents all business-related applications;

  • analyzes business requirements for system subcomponents and prepare detailed programming specifications for assigned system applications;

  • formulates test cases to test application software in development, to ensure a program’s functionality matches its specification’s business requirements, and to ensure the company’s programming standards are followed;

  • analyzes technical specifications, builds and implements functionally accurate and modular application programs according to approved design specifications;

  • coordinates programming tasks, team members, and projects within the department;

  • determines forms, procedures, and other documentation needed for installation and maintenance of application programs;

  • translates detailed flow charts into coded machine instructions and conferring with technical personnel in planning programs;

  • selects and incorporates available software programs.

Testing

Testing involves finding defects in software. Testing strategies are neither random nor haphazard, rather they should be approached in a methodical and systematic manner. Testing requires attention to details, and is often performed by individuals working independently and the pressure to meet deadlines and deliver the product is enormous.

The main Software Tester soft skills requirements are:

  • organization skills;

  • pay thorough and acute attention to details.

The main Software Tester hard skills requirements are:

  • coordinates necessary testing resources to ensure completion by deadlines;

  • gathers test requirements and producing test specifications;

  • performs manual execution of tests, recording of results, investigation and logging of faults;

  • manages and supports the team in creating reusable test assets for both manual and automated test scripts;

  • demonstrates ability to define and implement medium to large scale test plans and strategies according to quality objectives, project timelines and resources;

  • manages defects including the identification, logging, tracking, triaging, and verification of issues;

  • identifies and mitigates business and technical risks in the development and execution of the test strategy;

  • does analysis and evaluation, documentation and communication of testing progress for stakeholders;

  • ensures test process, methodologies and tools are applied appropriately and that test phase entry/exit criteria are agreed to by stakeholders and applied by the test team;

  • maintains relevant test results databases;

  • communicates and negotiates testing timelines, budget, staffing, scope and critical milestones with project managers.

Maintenance

Software is normally subject to continual change after it is written and while it is operational, thus indicating the necessity of maintaining an evolving system.

The main Maintenance Engineer soft skills requirements are:

  • open and adaptable to changes;

  • pay thorough and acute attention to details.

The main Maintenance Engineer hard skills requirements are:

  • provide, maintain, or update systems documentation to reflect new applications or enhancements to existing applications;

  • provide skills transfer or assistance to junior development team members to improve product quality, performance, and to ensure standards are implemented;

  • regularly coordinate or take part in discussions with users and system analysts in developing and maintaining applications or enhancements to meet business needs;

  • contribute to process-improvement initiatives, especially with regard to programming and IT;

  • manage and support the maintenance of systems developed in-house as directed by the system Analyst or the Manager, system development, including ‘trouble-shooting’, reporting problems and recommending, designing, and implementing sound solutions;

  • comply with mandated policies and procedures and contribute in procedural improvements;

  • coordinate system integration testing and participate in user acceptance testing;

  • be willing to learn new technologies, and keep on top of emerging trends in application development, and have an open mind to considering different approaches to solving technical problems.

The material considers the traditional stages of system analysis, software design, programming, testing, and maintenance, so it omits the different characteristics that may be more appropriate for other software occupations, such as project manager, trouble shooter, helpdesk personnel, database administrator, and so forth. Putting it in software context, diversity of skills and personalities are needed to solve the myriad of problems related to software development and maintenance.

Exercise 8. Answer the following questions. Discuss the answers.

  1. What does programming involve? What does this phase entail?

  2. What do programmers need to follow?

  3. What are the main software programmer soft skills requirements?

  4. What are the main software programmer hard skills requirements?

  5. What does testing involve and require?

  6. What are the main software tester soft skills requirements?

  7. What are the main software tester hard skills requirements?

  8. Why is maintenance of an evolving system necessary?

  9. What are the main maintenance engineer soft skills requirements?

  10. What are the main maintenance engineer hard skills requirements?

Exercise 9. Give English equivalents to the following word combinations.

Персонал служби технічної підтримки; слідкувати за останніми новинками; впровадження найкращих рішень; ініціативи по покращенню процесу; система, що розвивається; критерії вводу-виводу; бути погодженим з; тестування прийнятності для користувачів; графік реалізації проекту; автоматизований скрипт тестування; зменшення комерційних та технічних ризиків; процес деталізації; уточнений варіант; аналітичний тип мислення; реєстрація помилок; забезпечити завершення до крайнього терміну; ретельна увага до деталей.

Exercise 10. Find in the text the equivalents of the following words:

flaw; advantage; tremendous; examination (inquiry); to fulfill (to complete); to choose; recognition (perception); step-by-step; improvement (perfection); to show; check (examination); to lessen (to mollify); standards; betterment (amelioration); to forget (to neglect); profession; variety (multiplicity); innumerable (countless).

Exercise 11. Memorize the following words and word combinations.

commit – вчиняти; доручати, довіряти

beneficial – вигідний, корисний

welfare – добробут, достаток

adhere – дотримуватись

consistently – послідовно, узгоджено

integrity – цілісність; чесність

judgment – судження, оцінка

subscribe – приєднуватися; погоджуватися

advance – просуватися вперед; удосконалюватися

Exercise 12. Read and translate the text.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]